定义
静态编写的时候并不确定传入的参数是什么类型。
泛型变量
- 已知外层数据类型
- 未知内部数据类型
- 例如:Arrary
泛型接口
interface reurnFn<T>{(para:T):T}// 因为returnFn是个类型函数接口const returnFn:reurnFn<number> = para=>para
泛型类
class<T>{num:Tfn(item:T){return item}}
泛型约束
用
泛型约束于索引类型
// keyof T T的所有keyfunction getValue<T extends object,U extends keyof T>(obj:T,key:U){return obj[key]}
多重类型进行泛型约束
- 建立一个超接口,约束超接口
- 交叉类型约束(&) ```typescript interface superInterface extends interface1,interface2{}
class demo
}
class demo
}
<a name="SfuLB"></a>### 泛型与new```typescript// 参数 type 的类型 {new(): T} 就表示此泛型 T 是可被构造的function factory<T>(type: {new(): T}): T {return new type() // ok}
