面试题答案
一键面试type DeepObject = {a: {x: string; y: number}; b: {m: boolean; n: string[]};}
type IsBaseType<T> = T extends string | number | boolean ? true : false;
type IsArrayType<T> = T extends Array<infer U> ? true : false;
type MapValueType<T> =
IsBaseType<T> extends true ? null :
IsArrayType<T> extends true ? Array<undefined> :
T;
type MappedDeepObject = {
[K in keyof DeepObject]: {
[P in keyof DeepObject[K]]: MapValueType<DeepObject[K][P]>
}
}