【发布时间】:2021-05-19 02:17:06
【问题描述】:
有这个sn-p
interface Bar{
a: A|null
}
interface A {
text: string
}
function foo(bar: Bar) {
if(bar.a?.text === null) {
return;
}
console.log(bar.a.text);
}
为什么 Typescript 抱怨 bar.a 在与 console.log 的行上可能为空
对象可能是“空”。
当我已经检查了上面的null 并通过提前退出排除了它?
如果bar.a?.text 不是null,则意味着a 不是null 它是函数的上下文。
在这个例子中看起来没什么大不了的,但是使用可选链来排除a?.b?.c?.d?.text中的所有nulls。
【问题讨论】:
标签: typescript