面试题答案
一键面试// 使用映射类型实现将所有属性变为可选属性的工具类型
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';