什么是泛型?
泛型(Generics)是 TypeScript 中实现类型安全和代码复用的核心特性。它允许我们编写可适用于多种类型的组件,而无需牺牲类型检查的精度。
例如:
function identity<T>(arg: T): T {
return arg;
}
通过 <T>
定义类型参数,函数可以处理任意类型的数据,同时保持类型约束。
泛型语法基础
1. 类型参数声明
function createArray<T>(length: number, value: T): Array<T> {
return Array(length).fill(value);
}
T
是类型参数的占位符Array<T>
表示返回值的类型为T[]
2. 泛型类
class Box<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getVal(): T {
return this.value;
}
}
3. 泛型接口
interface Pair<T> {
first: T;
second: T;
}
泛型应用场景 ✅
数据处理工具
如sortArray<T>(arr: T[]): T[]
可统一处理数字、字符串等类型数组React 组件
React.FC<Props>
中的 Props 可以是任意类型API 客户端
interface APIResponse<T> { data: T; status: number; }
泛型最佳实践 ⚠️
- 避免过度泛型化(如
any
类型) - 使用类型约束:
function example<T extends string>(param: T)
- 默认类型参数:
function defaultArg<T = string>(value: T): T
深入学习推荐
想了解更多关于类型推断的高级用法?
👉 点击此处查看类型推断教程