Условные типы для nullable в Typescript - PullRequest
1 голос
/ 07 января 2020

Я хочу проверить, является ли тип обнуляемым или нет, и имеет ли он условный тип для значения.

Я попытался реализовать

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

Однако, это не похоже на работу

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

Как правильно проверить, может ли тип обнуляться? Я пробовал с T extends null | T и тоже не сработало.

1 Ответ

3 голосов
/ 07 января 2020

Вы можете переключать левую и правую сторону extends, поэтому

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

должно работать для вас.

...