MST

星途 面试题库

面试题:TypeScript中Record与条件类型结合实现复杂映射

定义两个接口,`Keys`接口有`key1`和`key2`两个字符串属性,`Values`接口有`value1`(字符串类型)和`value2`(数字类型)两个属性。要求使用Record工具类型结合条件类型,当键为`key1`时,值的类型为`Values`中的`value1`类型;当键为`key2`时,值的类型为`Values`中的`value2`类型。请写出类型定义代码。
15.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface Keys {
    key1: string;
    key2: string;
}

interface Values {
    value1: string;
    value2: number;
}

type MyRecord = {
    [K in Keys[keyof Keys]]: K extends 'key1'? Values['value1'] : K extends 'key2'? Values['value2'] : never;
};