TypeScript type exclude null include undefined

Sep 30 2020

Gemäß

https://www.typescriptlang.org/docs/handbook/utility-types.html#nonnullabletype

Nicht annullierbar

Konstruiert einen Typ, indem null und undefiniert vom Typ ausgeschlossen werden.

Beispiel
type T0 = NonNullable<string | number | undefined>;
//    ^ = type T0 = string | number
type T1 = NonNullable<string[] | null | undefined>;
//    ^ = type T1 = string[]

und ich habe gelesen, dass es definiert ist als:

type NonNullable<T> = T extends null ? never : T

Jetzt möchte ich ausschließen, nullaber einschließen, undefineddass dies für meinen Code erforderlich ist.

Wie würdest du das machen? Vielen Dank.

Antworten

1 Praveenkumar Oct 01 2020 at 04:02

Eigentlich ist das Bestehende NonNullabledefiniert als type NonNullable<T> = T extends null | undefined ? never : T;. Sie können jedoch Ihren eigenen Dienstprogrammtyp wie unten erstellen und verwenden.

type NonNullButUndefined<T> = T extends null ? never : T;

// Usage
type T = NonNullButUndefined<string | null | undefined>;

Verwendung: