TypeScript 泛型入门:告别 any 的第一步

2026-04-192 分钟

泛型是 TypeScript 从"能用"到"好用"的关键一步。很多开发者遇到不确定类型就写 any,其实泛型就是为此而生的。

场景一:通用函数

function first<T>(arr: T[]): T | undefined {
  return arr[0];
}

调用时 TypeScript 自动推断 T 的类型,不需要手写。

场景二:API 响应封装

interface ApiResponse<T> {
  code: number;
  data: T;
  message: string;
}

不同接口的 data 结构不同,用泛型参数 T 表示,调用时传入具体类型即可获得完整的类型提示。

场景三:React 组件 Props

interface ListProps<T> {
  items: T[];
  renderItem: (item: T) => ReactNode;
}

泛型组件让列表组件复用时保持类型安全,不需要为每种数据类型写一个新组件。

记住一句话:当你想写 any 的时候,大概率应该用泛型。