泛型(Generics)是允许同一个函数接受不同类型参数的一种模板。相比于使用 any 类型,使用泛型来创建可复用的组件要更好,因为泛型会保留参数类型。
T 代表Type,在定义泛型是通常用作第一个类型变量名称。
- K(Key):表示对象中的键类型;
- V(Value):表示对象中的值类型;
- E(Element):表示元素类型;
- O(Object):表示对象类型;
1. 泛型接口
interface GenericIdentityFn<T> {
(arg: T): T;
}
2. 泛型类
class myParson<T> {
val: T;
add: (x: T, y: T) => T;
}
let myParson = new myParson<number>();
myParson.val = 0;
myParson.add = function (x, y) {
return x + y;
};
泛型可以使用 可选属性 默认参数 extends继承