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