MST

星途 面试题库

面试题:TypeScript基于条件类型与keyof、in构建复杂映射类型

有一个类型`OriginalType`,包含属性`prop1`(字符串类型)、`prop2`(数字类型)和`prop3`(布尔类型)。请创建一个新的映射类型,当属性值类型为`string`时,新类型中对应属性值变为`string[]`;当属性值类型为`number`时,新类型中对应属性值变为`number | null`;当属性值类型为`boolean`时,新类型中对应属性值变为`!boolean`。需使用`keyof`、`in`以及条件类型来完成。
27.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type OriginalType = {
    prop1: string;
    prop2: number;
    prop3: boolean;
};

type NewType = {
    [K in keyof OriginalType]: OriginalType[K] extends string 
      ? string[] 
       : OriginalType[K] extends number 
          ? number | null 
           :!OriginalType[K];
};