Typescript 接受NaN作为未定义的计算结果
我非常喜欢JavaScript在计算中处理Typescript 接受NaN作为未定义的计算结果,typescript,Typescript,我非常喜欢JavaScript在计算中处理未定义的。例如: function (a) { let c = a.b - 1; console.log(c || ''); } 但是我现在正在做一个启用严格模式的TypeScript项目。所以,我试过这个: function (a:{b?:number}) { let c:number = a.b - 1; console.log(c || ''); } 编译器抱怨a.ba.b可能未定义。我知道a.b经常会未定义。但
未定义的。例如:
function (a) {
let c = a.b - 1;
console.log(c || '');
}
但是我现在正在做一个启用严格模式的TypeScript项目。所以,我试过这个:
function (a:{b?:number}) {
let c:number = a.b - 1;
console.log(c || '');
}
编译器抱怨a.ba.b
可能未定义。我知道a.b经常会未定义。但我也确信我可以处理c
的NaN
结果
这里最优雅的解决方案是什么?一个快速而肮脏的方法是告诉编译器A.b没有定义:
let c = a.b! - 1
稍微长一点的方法是在计算中添加未定义的检查:
let c = a.b?a.b - 1:undefined
一个快速而肮脏的was是告诉编译器A.b未定义:
let c = a.b! - 1
稍微长一点的方法是在计算中添加未定义的检查:
let c = a.b?a.b - 1:undefined
信息:NaN类型作为提案信息:NaN类型作为提案