MST

星途 面试题库

面试题:TypeScript 映射类型结合条件类型的复杂应用

有一个类型 `UserInfo` 定义如下:`type UserInfo = {name: string; age: number; isAdmin: boolean;}`。请通过映射类型和条件类型创建一个新类型 `OptionalUserInfo`,它将 `UserInfo` 中的所有属性变为可选,并且如果属性值是 `string` 类型,将其包装在 `string[]` 中。例如,新类型的结构应该类似 `{name?: string[]; age?: number; isAdmin?: boolean;}`。
43.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type UserInfo = {name: string; age: number; isAdmin: boolean;}

type OptionalUserInfo = {
    [K in keyof UserInfo]?: UserInfo[K] extends string ? string[] : UserInfo[K];
}