🧪 Frontend Lab
交互式前端学习实验室

Utility Types 工具类型

typescript · intermediate · 20 min · Step 1/2

Utility Types

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

// Partial — 所有属性变可选
type UserUpdate = Partial<User>;
// { id?: number; name?: string; email?: string }

// Required — 所有属性变必填
type RequiredUser = Required<User>;

// Pick — 选取部分属性
type UserPreview = Pick<User, 'id' | 'name'>;
// { id: number; name: string }

// Omit — 排除部分属性
type UserWithoutEmail = Omit<User, 'email'>;
// { id: number; name: string }

// Record — 键值映射
type RoleMap = Record<string, User[]>;
// { [key: string]: User[] }

// Readonly — 所有属性只读
type ImmutableUser = Readonly<User>;

实际应用

// API 更新函数 — 不需要传所有字段
function updateUser(id: number, data: Partial<User>) { ... }

updateUser(1, { name: 'Bob' });  // OK
updateUser(1, { email: 'bob@example.com' });  // OK
Partial 是 React 中最常用的 Utility Type,用于组件的可选 props。