bailing 1 неделя назад
Родитель
Сommit
a9de503d21
1 измененных файлов с 31 добавлено и 1 удалено
  1. 31 1
      10.ts/4.面向对象/src/8.泛型.ts

+ 31 - 1
10.ts/4.面向对象/src/8.泛型.ts

@@ -1 +1,31 @@
-// (function)
+(function(){
+    // 泛型:用字符去指代未知的类型 使用时候传入具体类型
+    function fn1<T>(name:T):T {
+        return name;
+    }
+    fn1('孙悟空');// 若传入时 没有指出传入的类型 则会自动解析
+    fn1<number>(12); // 若传入时 指出类型 则写在<>内
+
+    function fn2<T,K>(name:T,age:K):[T,K] {
+        return [name,age];
+    }
+    fn2('哪吒',7);
+
+    // 接口
+    interface Hi {
+        flower:string
+    }
+    // 函数中泛型继承接口 
+    function fn3<T extends Hi >(x:T):T {
+        return x;
+    }
+    fn3({flower:'牡丹'})
+    // 类中的泛型继承接口
+    class Happying<T extends Hi> {
+        name:T;
+        constructor(name:T) {
+            this.name = name;
+        }
+    }
+    let happy = new Happying({flower:'水仙'})
+})()