|
@@ -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')
|
|
|
+
|
|
|
+})()
|