最佳答案
我需要声明一个类型,以便从其属性类型中移除未定义的类型。
假设我们有:
type Type1{
prop?: number;
}
type Type2{
prop: number | undefined;
}
type Type3{
prop: number;
}
我需要定义一个名为 NoUndefinedField<T>
的泛型类型,使得 NoUndefinedField<Type1>
提供与 Type3
相同的类型和与 NoUndefinedField<Type2>
相同的类型。
我试过了
type NoUndefinedField<T> = { [P in keyof T]: Exclude<T[P], null | undefined> };
但它只适用于 Type2
。