面试题答案
一键面试type DeepRequired<T> = {
[P in keyof T]-?: T[P] extends object
? DeepRequired<T[P]>
: T[P];
};
// 示例使用
type ComplexUser = {
user: {
name?: string;
address?: {
city?: string;
street?: string;
};
};
};
type RequiredComplexUser = DeepRequired<ComplexUser>;
// 此时 RequiredComplexUser 的类型为:
// {
// user: {
// name: string;
// address: {
// city: string;
// street: string;
// };
// };
// }