泛型的类型的变量可以有多个 并且类型变量之间还可以约束 (比如 第二个类型变量受第一个类型变量约束)
/解释: 1添加了第二个类型变量key 两个类型变量之间的使用,逗号分隔
2 keyof关键字接收一个对象类型,生成器键值对(可能是数字或字符)的联合类型
3 实例中keyof Type 实际上是获取的是person对象所有键的联合类型 也就是:"name"|"sge"
4类型变量key 受type约束,可以理解:key只能是type所有键中的任意一个 或者说之支能访问对象存在的属性
以下的例子中函数的调用形式 第一个参数传入对象 第二个参数传入获取那个属性
这个属性第一个参数有的属性
// 泛型接口:接口也可以配合泛型使用 以增加其灵活性 以增强复用性 // 注意 一定指定类型
// 解释 // 1接口名称后添加<类型变量> 那么,这个接口变成了泛型接口 // 2接口的类型变量,对接口中的其他成员可见,也就是接口所有成员都可以使用类型变量, // 3使用泛型接口时,需要显式指定具体类型(比如,此处的IdFunc) // 4 此时,id方法的参数和返回值类型都是number,ids返回值类型时number[]
泛型数组接口
// 实际上,中的数组在ts中就是一个泛型接口
// 解释 // 当我们使用数字组的时,ts会根据不同的数组类型 会自动地将变量设置为相应的类型 // 技巧 :我们我们你可以通过 ctrl+鼠标左键(Mac:option+鼠标左)来产看具体信息
泛型类
class也可以配合泛型来使用
比如 React 的class组件的基类Component就是泛型类 不同的组件有不同的props和state
解释:React.Component泛型类的两个类型的变量 分别指定props和state类型