TypeScript 词条目录
前端Wiki/词条/工具类型

工具类型

定义TS 内置的类型级函数:以现有类型为输入,变换出衍生类型(Partial / Pick / Omit / Record / ReturnType 等)

工具类型让「类型」可以像数据一样被加工:Partial 把所有属性变可选(表单草稿场景);Pick 只挑指定属性;Omit 去掉不想暴露的字段;Record 构造键值表;ReturnType 取函数返回类型。它们本质都是 mapped 类型(映射类型)的语法糖。

工程中最常见的一组搭配:后端接口返回完整 User,创建表单用 Partial,列表展示用 Pick,编辑表单用 Omit——一份类型定义覆盖四个场景,改一处全处变。熟练手写 Omit = Pick> 是中高级 TS 的分水岭。

TypeScript
interface User {
  id: number;
  name: string;
  age: number;
  email: string;
}

type UserDraft   = Partial<User>;                 // 所有属性可选
type UserPreview = Pick<User, 'name' | 'age'>;    // 只留两个字段
type UserForm    = Omit<User, 'id'>;              // 去掉不可编辑的 id
type UserMap     = Record<string, User>;          // { [k: string]: User }

// ReturnType / Parameters:从函数反推类型
function fetchUser(): Promise<User> { /* ... */ return null as any; }
type R = ReturnType<typeof fetchUser>;            // Promise<User>
type P = Parameters<typeof fetchUser>;            // []

// 手写 Omit 看穿工具类型的本质
type MyOmit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
⚠ 常见误区
🔗 相关词条泛型接口 interfaceTypeScript 是什么
← 返回来源章节Partial Pick 与 Omit