基础知识

发布于 2026-07-26

TypeScript 泛型

TypeScript 泛型用于创建可重用的组件,提高代码的复用性和类型安全性。

泛型(Generics)

泛型是 TypeScript 的核心特性之一,可以写出类型安全但又不失灵活性的代码——先不指定具体类型,等使用时再传入。

为什么需要泛型

没有泛型时,要么写死类型,要么用 any 丢失类型安全:

// 写死类型 → 不灵活
function wrapValue(value: string): { value: string } {
  return { value };
}
 
// 用 any → 丢失类型信息
function wrapValueAny(value: any): { value: any } {
  return { value };
}
const result = wrapValueAny(123);
result.value.toFixed(2); // TS 不会报错,但如果传入字符串就会运行时崩溃

用泛型解决

function wrapValue<T>(value: T): { value: T } {
  return { value };
}
 
const a = wrapValue("hello");  // { value: string }
const b = wrapValue(123);      // { value: number }
b.value.toFixed(2);            // ✅ TS 知道 b.value 是 number,类型安全

T 就是类型参数(type parameter),调用时 TS 会自动推断,也可以显式指定:wrapValue<number>(123)。