strictNullChecks
开启class Smth {
private data: Array<{ value: number} | undefined> = [];
public doSmth(i: number) {
const data = this.data;
return data[i] && data[i].value === 0
// ^^^^^^^ Object is possibly 'undefined'.
}
}
之后我收到了错误
对象可能是“未定义的”。
EOT
我无法理解检查后如何定义它。
答案 0 :(得分:1)
这是打字稿中的known issue。
该问题的TL; DR ,Typescript 可以进行这些检查,但是由于编译器的性能成本很高,开发人员选择不这样做。
解决方法是使用非空断言运算符(!
)告诉编译器该值不是null
或undefined
。对于这个例子:
return data[i] && data[i]!.value === 0