如何在TypeScript类型系统中检查类型是否包含null类型?
在TypeScript类型层面检查是否包含null类型
当然可行,你可以用TypeScript的条件类型来实现类型层面的检查,核心思路是判断null是否属于目标类型的子类型,类似你想要的“in关键字”语义。
首先定义一个通用的工具类型:
type HasNull<T> = null extends T ? true : false;
然后把你的两个类型代入测试:
type TransactionCategory = "B2B"| "SEZWP" | "SEZWOP" | "EXPWP" | "EXPWOP" | "DEXP" | null; type DutyStatus = "WPOD" | "WOPOD"; // 结果为true,说明TransactionCategory包含null类型 type HasNullInTransaction = HasNull<TransactionCategory>; // 结果为false,说明DutyStatus不包含null类型 type HasNullInDuty = HasNull<DutyStatus>;
这个判断完全在类型系统层面完成,不需要任何运行时实例,通过null extends T的条件判断,就能精准检测目标类型是否包含null成员。
内容的提问来源于stack exchange,提问作者Stefc
相关产品推荐
相关产品推荐

