MST

星途 面试题库

面试题:TypeScript 映射类型与条件类型结合使用

有一个接口`interface Data { id: number; name: string; value: boolean; }`,请使用TypeScript映射类型和条件类型,创建一个新接口,该接口仅包含原接口中值类型为字符串的属性,并且这些属性变为只读,且属性名全部大写。
15.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface Data {
    id: number;
    name: string;
    value: boolean;
}

type StringPropsToReadonlyUppercase<T> = {
    readonly [K in keyof T as T[K] extends string ? Uppercase<string & K> : never]: T[K];
};

interface NewData extends StringPropsToReadonlyUppercase<Data> {}