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