1️⃣ 泛型
泛型:是指附属于函数,类,接口,类型别名之上的类型
泛型相当于是一个类型变量,在定义时,无法预先知道具体的类型,可以使用变量代替,只有在调用时,才能确定它的类型
1️⃣ 使用泛型
在函数,类型别名,接口,类后加 **<泛型名字>** ,泛型的名字可以随便起,一般常用的是命名为 **T**
2️⃣ 在函数中使用泛型

3️⃣ 函数中的泛型推导
当函数和函数参数使用了泛型,只要在参数中确定类型就不用在调用函数时传递类型了。
2️⃣ 在类型别名,接口,类中使用泛型
// 类型别名type Callback<T> = (a: T, b: T) => Booleanfunction fun(callback: Callback<string>) { }// 接口interface obj<T> {name: Tjob: T}let in1: obj<string>in1 = {name: 'chen',job: '前端'}let in2: obj<number>in2 = {name: 10,job: 20}// 类class cla<T> {name: Tconstructor(name: T) {this.name = name}}
1️⃣ 泛型约束
1️⃣ 多泛型


