泛型(Generics) #
泛型允许在定义函数、接口或类时不指定具体类型,而在使用时再指定,提升代码复用性。
基本概念 #
泛型使用类型参数(如 )表示未知类型,在编译时进行类型检查。
使用场景 #
- 创建可处理多种数据类型的函数或类,如数组操作。
- 定义通用数据结构,如链表、栈。
- 在库或框架中提供灵活的 API。
示例代码 #
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("myString"); // string
class GenericNumber<T> {
zeroValue: T;
add: (x: T, y: T) => T;
}
最佳实践 #
- 使用约束(如 extends)限制泛型类型。
- 结合默认类型参数提供灵活性。
- 避免过度泛化,保持类型安全。