编程 · NOTE 06

从一个小项目理解 TypeScript 泛型

用真实的数据转换场景,拆解约束、推断和可复用类型设计。

2026年6月18日8 分钟阅读最近整理 2026年6月18日

泛型解决什么问题

泛型的价值不是让类型看起来更高级,而是在保留信息的同时复用逻辑。函数接收什么类型,就能准确返回与它相关的类型。

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

用约束描述最低要求

当逻辑只需要对象拥有某个字段时,可以使用 extends 表达最低能力,而不是限制成某个具体类型。

优先让 TypeScript 推断

好的泛型 API 通常不要求调用者手写大量类型参数。先设计清楚输入之间的关系,再让编译器从真实参数中完成推断。

#TypeScript#泛型#类型设计