typescript TS检查类型是否包含'null'类型

hc8w905p  于 2022-11-26  发布在  TypeScript
关注(0)|答案(1)|浏览(281)

我定义了以下两个类型脚本类型。其中一个类型包含null,另一个类型不包含。是否可以检查此类型是否存在null

type TransactionCategory = "B2B"| "SEZWP" | "SEZWOP" | "EXPWP" | "EXPWOP" | "DEXP" | null

type DutyStatus = "WPOD" | "WOPOD"

我不想在具体示例上检查这些东西,而是在类型系统本身上检查。类似于in关键字。

8nuwlpux

8nuwlpux1#

我不太清楚你在问什么,但是...
如果你只想从编译器得到一个布尔判断,判断类型null是否包含在联合类型中,那么你可以写一个简单的genericutility type来检查:
TSPlayground

type TransactionCategory = "B2B"| "SEZWP" | "SEZWOP" | "EXPWP" | "EXPWOP" | "DEXP" | null;
type DutyStatus = "WPOD" | "WOPOD";

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

type TransactionCategoryIncludesNull = IncludesNull<TransactionCategory>;
   //^? type TransactionCategoryIncludesNull = true

type DutyStatusIncludesNull = IncludesNull<DutyStatus>;
   //^? type DutyStatusIncludesNull = false

相关问题