e 4 月之前
父节点
当前提交
96e81b0e74
共有 3 个文件被更改,包括 82 次插入1 次删除
  1. 34 0
      14.ts/4.面向对象/dist/8.泛型.js
  2. 1 1
      14.ts/4.面向对象/index.html
  3. 47 0
      14.ts/4.面向对象/src/8.泛型.ts

+ 34 - 0
14.ts/4.面向对象/dist/8.泛型.js

@@ -0,0 +1,34 @@
+(function () {
+    // function fn1(name:string):string {
+    //     return name;
+    // }
+    // fn1("嗷嗷")
+    // function fn2(name:any):any {
+    //     return name;
+    // }
+    // return break/continue 传参 
+    // 泛型:先用字符去指代未知类型 使用时传入具体的值
+    function fn3(num) {
+        return num;
+    }
+    fn3(12); //若传入时 未直接指出类型 则ts默认解析传入类型
+    fn3("你好"); //若传入时 直接指出类型 将类型写在<>内
+    // 传入多个值
+    function fn4(a, b) {
+        return [a, b];
+    }
+    fn4("10", false);
+    // 若函数中 泛型继承接口 则传入的值必须符合接口的条件
+    function fn5(a) {
+        return a;
+    }
+    fn5({ jump: '0' });
+    // 若类中 泛型继承接口 则传入的值必须符合接口的条件
+    class Ending {
+        constructor(name) {
+            this.name = name;
+        }
+    }
+    let end = new Ending({ jump: '哈哈' });
+    console.log(end, 'end');
+})();

+ 1 - 1
14.ts/4.面向对象/index.html

@@ -6,6 +6,6 @@
     <title>Document</title>
 </head>
 <body>
-    <script src="./dist/7.属性的封装.js"></script>
+    <script src="./dist/8.泛型.js"></script>
 </body>
 </html>

+ 47 - 0
14.ts/4.面向对象/src/8.泛型.ts

@@ -0,0 +1,47 @@
+(function(){
+    // function fn1(name:string):string {
+    //     return name;
+    // }
+    // fn1("嗷嗷")
+    // function fn2(name:any):any {
+    //     return name;
+    // }
+    // return break/continue 传参 
+    // 泛型:先用字符去指代未知类型 使用时传入具体的值
+    function fn3<T>(num:T):T {
+        return num;
+    }
+    fn3(12);//若传入时 未直接指出类型 则ts默认解析传入类型
+    fn3<string>("你好"); //若传入时 直接指出类型 将类型写在<>内
+
+    // 传入多个值
+    function fn4<T,W>(a:T,b:W):[T,W] {
+        return [a,b];
+    }
+    fn4<string,boolean>("10",false);
+
+    // 接口
+    interface happy { 
+        jump:string;
+    }
+   
+    // 若函数中 泛型继承接口 则传入的值必须符合接口的条件
+    function fn5<T extends happy>(a:T):T {
+        return a;
+    }
+
+    fn5({jump:'0'});
+
+    // 若类中 泛型继承接口 则传入的值必须符合接口的条件
+    class Ending<T extends happy> {
+        name: T;
+        constructor(name:T) {
+            this.name = name;
+        }
+    }
+    
+    let end = new Ending({jump:'哈哈'})
+
+    console.log(end,'end')
+
+})()