(function() { // 泛型:先用字符去指代未知类型 使用时在传入具体的类型 // function fn1(name:T):T { // return name; // } // fn1(12); // fn1('22'); function fn1(name:T,x:W):[T,W] { return [name,x]; } fn1(12,12); fn1('22','ss'); interface happy { jump:string } function fn3(a:T):T { return a; } fn3({jump:'1212'}) class Ending { name:T; constructor(name:T) { this.name = name; } } let e = new Ending({jump:'1212'}) // Omit Pick区别 })()