MST
星途 面试题库

面试题:TypeScript中映射类型如何实现将对象属性全部变为可选

请使用TypeScript的映射类型实现一个工具类型,将传入对象类型的所有属性变为可选属性,并举例说明如何使用这个工具类型。
45.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 使用映射类型实现将所有属性变为可选属性的工具类型
type MakeOptional<T> = {
    [P in keyof T]?: T[P];
};

// 示例对象类型
type User = {
    name: string;
    age: number;
    email: string;
};

// 使用工具类型
type OptionalUser = MakeOptional<User>;

// 使用示例
let optionalUser: OptionalUser = {}; // 合法,所有属性可选
optionalUser.name = 'John';
optionalUser.age = 30;
optionalUser.email = 'john@example.com';