MST

星途 面试题库

面试题:TypeScript 泛型工具类型的复杂定制

假设你有一个类型 `interface Data { a: string; b: number; c: boolean; }`,实现一个工具类型 `MyPartialByKeys`,它接收两个类型参数,第一个是原始类型,第二个是一个键的联合类型。该工具类型要将原始类型中指定键的属性变为可选,其余属性保持不变。例如 `MyPartialByKeys<Data, 'a' | 'c'>` 应得到 `{ a?: string; b: number; c?: boolean; }`
23.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type MyPartialByKeys<T, K extends keyof T> = {
    [P in keyof T]: P extends K? T[P] | undefined : T[P];
};