我在比较中得到TS18047,其中null比较的错误结果是期望的结果。
所以,基本上:
const a: number | null = null;
if (a >= 250) { /* will not execute because result of comparison is false */ }
这就是我要的。在我引入typescript之前,这些代码也可以运行。
我知道我可以做一个空检查,但是这个变量和不同的数字进行比较,好像有10个分支。
只有最终的else
处理实际的空值。
我是否真的需要检查是否为空,或者我是否有可能摆脱这个?
从技术上讲,这应该是可行的,因为你不能将null值与数字进行比较,因为它总是为假,所以你需要先进行null检查。
if (a && a >= 250) {
// do something
}
这也可以,但它不是最佳实践,因为它违背了typescript
的目的if (a! >= 250) {
// do something
}
typeof
方法有时对我有效。
if (typeof a == 'number' && a >= 250) {
//do something
}