MST

星途 面试题库

面试题:TypeScript 条件类型与泛型编程的深度应用

实现一个复杂的泛型工具类型 `DeepPartial`,它可以将一个对象类型的所有属性及其子属性都变为可选。例如,给定类型 `{ a: { b: number } }`,应用 `DeepPartial` 后变为 `{ a?: { b?: number } }`。需要考虑对象嵌套多层的情况,且要使用条件类型来实现。
22.9万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type DeepPartial<T> = T extends object
  ? {
      [P in keyof T]?: DeepPartial<T[P]>;
    }
  : T;