Тип TypeScript exclude null включает undefined
Sep 30 2020
В соответствии с
https://www.typescriptlang.org/docs/handbook/utility-types.html#nonnullabletype
примерБез значения Nullable
Создает тип, исключая значения null и undefined из Type.
type T0 = NonNullable<string | number | undefined>;
// ^ = type T0 = string | number
type T1 = NonNullable<string[] | null | undefined>;
// ^ = type T1 = string[]
и я прочитал, что это определяется как:
type NonNullable<T> = T extends null ? never : T
Теперь я хочу исключить, nullно включить undefinedто, что требуется в мой код.
Как бы Вы это сделали? Благодарю.
Ответы
1 Praveenkumar Oct 01 2020 at 04:02
Фактически существующее NonNullableопределяется как type NonNullable<T> = T extends null | undefined ? never : T;. Но вы можете создать свой собственный тип утилит, как показано ниже, и использовать его.
type NonNullButUndefined<T> = T extends null ? never : T;
// Usage
type T = NonNullButUndefined<string | null | undefined>;
Применение: