I need to declare a type such that removes the undefined from its property types.
Suppose we have:
type Type1{ prop?: number; } type Type2{ prop: number | undefined; } type Type3{ prop: number; } I need to define a generic type called NoUndefinedField<T> such that NoUndefinedField<Type1> gives the same type as Type3 and the same type as NoUndefinedField<Type2>.
I tried this
type NoUndefinedField<T> = { [P in keyof T]: Exclude<T[P], null | undefined> }; But it only works for Type2.
There is also now the NonNullable type built in:
type NonNullable<T> = Exclude<T, null | undefined>; // Remove null and undefined from T https://www.typescriptlang.org/docs/handbook/utility-types.html#nonnullablet
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With