- 更多信息,请访问 TypeScript
- Overview
-
定义函数、接口或类时使用 类型参数 T ,这些类型参数在使用时会被具体的类型替换 - 更灵活且类型安全的代码
用于创建可重用的组件和函数,同时保持类型安全
- 泛型函数
-
处理多种类型的函数,而不需要为每种类型编写单独的实现
一个函数可以定义多个泛型函数
//定义
function identity<T>(arg: T): T {
return arg;
}
// 使用
let output1 = identity("myString");
let output2 = identity(100);
- 泛型类
-
定义具有泛型类型的类
class GenericNumber<T> {
zeroValue: T;
add: (x: T, y: T) => T;
constructor(zeroValue: T, add: (x: T, y: T) => T) {
this.zeroValue = zeroValue;
this.add = add;
}
}
let myGenericNumber = new GenericNumber<number>(0, (x, y) => x + y);
console.log(myGenericNumber.add(5, 10)); // 输出: 15
- 泛型接口
-
定义具有泛型类型的接口
interface GenericIdentityFn<T> {
(arg: T): T;
}
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: GenericIdentityFn<number> = identity;
console.log(myIdentity(42)); // 输出: 42