守卫取反(NOT)
运行时对守卫结果取反。重要限制:由于 TypeScript 类型系统不支持否定类型, 返回值类型为 (val: unknown) => boolean,不会进行类型收窄。 换言之,if (not(isNull)(val)) 块内 val 仍为原始类型,不会被排除 null。
(val: unknown) => boolean
if (not(isNull)(val))
null
— 要取反的 TypeGuard 函数
取反后的判断函数 (val: unknown) => boolean(非 TypeGuard)
const isNotNull = not(isNull);if (isNotNull(value)) { // 运行时正确,但 TS 不会收窄 value 的类型} Copy
const isNotNull = not(isNull);if (isNotNull(value)) { // 运行时正确,但 TS 不会收窄 value 的类型}
守卫取反(NOT)
运行时对守卫结果取反。重要限制:由于 TypeScript 类型系统不支持否定类型, 返回值类型为
(val: unknown) => boolean,不会进行类型收窄。 换言之,if (not(isNull)(val))块内 val 仍为原始类型,不会被排除null。