面试题答案
一键面试interface User {
name: string;
age: number;
isAdmin: boolean;
}
// 将User中的所有属性变为只读属性
type ReadOnlyUser = {
readonly [K in keyof User]: User[K];
};
// 将User中的所有属性变为可选属性
type OptionalUser = {
[K in keyof User]?: User[K];
};
// 将User中的isAdmin属性变为只读,其他属性保持不变
type PartiallyReadOnlyUser = {
[K in Exclude<keyof User, 'isAdmin'>]: User[K];
} & {
readonly isAdmin: User['isAdmin'];
};