1. // let add: (x: number, y: number) => number
    2. // interface Add {
    3. // (x: number, y: number): number
    4. // }
    5. // type Add = (x: number, y: number) => number
    6. // let add: Add = (a, b) => a + b
    7. interface Lib {
    8. (): void;
    9. version: string;
    10. doSomething(): void;
    11. }
    12. function getLib() {
    13. let lib: Lib = (() => { }) as Lib;
    14. lib.version = "1.0";
    15. lib.doSomething = () => { };
    16. return lib;
    17. }
    18. let lib1 = getLib();
    19. lib1();
    20. lib1.doSomething();
    21. let lib2 = getLib();