面试题答案
一键面试function safeGet<Obj extends object | null | undefined, Key extends keyof Obj, Default>(
obj: Obj,
key: Key,
defaultValue: Default
): Obj extends object
? Key extends keyof Obj
? NonNullable<Obj[Key]> | Default
: Default
: Default {
if (obj === null || obj === undefined) {
return defaultValue;
}
const value = obj[key];
return value === null || value === undefined ? defaultValue : value;
}