Villkorliga typer för nullbar i Typescript


Jag vill kontrollera om en typ är nullable eller inte, och om den har en villkorlig typ på värdet.

Jag försökte implementera

type IsNullable<T> = T extends null ? true : false;

Men det verkar inte fungera

type test = IsNullable<number> // Returns false as it should
type test = IsNullable<number | null> // Returns false when it should be true

Vad är det rätta sättet att kolla om en typ är nullbar? Jag försökte med T extends null | T och det fungerade inte heller.

Svar #1

Du kan byta plats på vänster och höger sida av extends, så

type IsNullable<T> = null extends T ? true : false;

bör fungera för dig.

Relaterade artiklar