我使用typescript 2.0.0与–strictNullChecks和以下类型后卫:
function isNotOk(value: any): value is null | undefined { if (typeof value === 'number') { return !isFinite(value); } else { return value === null || value === undefined; } }
这使null,undefined,NaN和Infinite无效.我想要反过来:
export function isOk(value: any): value is not null | undefined { return !isNotOk(value); }
当然,这种语法不起作用.有没有一种已知的方法来实现这一目标?
解决方法
我偶然发现了答案;仿制药.只是以相反的方式缩小:
function isOk<T>(value: T | null | undefined): value is T { return !isNotOk(value); }