MST

星途 面试题库

面试题:TypeScript中泛型工具类型Partial与Required组合使用场景

假设你有一个用户信息接口UserInfo,包含name、age和email字段。请使用TypeScript泛型工具类型Partial和Required,创建一个新类型,要求name字段是必填的,而age和email字段是可选的。并解释在实际项目中这种组合使用可能会在哪些场景下出现。
12.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface UserInfo {
    name: string;
    age: number;
    email: string;
}

type NewUserType = Required<Pick<UserInfo, 'name'>> & Partial<Pick<UserInfo, 'age' | 'email'>>;

实际场景解释

  1. 用户信息更新场景:在用户更新个人信息时,前端提交的数据可能不包含所有字段。例如,用户只想更新自己的姓名,而年龄和邮箱保持不变。此时,后端接口接收的数据类型就可以使用这种组合类型,确保name字段必填,而ageemail可选,避免因接收的数据不完整而导致错误。
  2. 用户注册简化流程:有些注册流程可能只要求用户必填姓名,年龄和邮箱可以后续补充。这种类型定义能准确地表达数据结构需求,在开发过程中为前端和后端提供清晰的数据校验规则。