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