在我的具有严格 null 检查的 Typescript 2.0 项目中,我有一个数组:
private _timers: ITimer[]
和一个 if 语句:
if(this._timers.length > 0){
this._timers.shift().stop();
}
但我得到一个编译错误:
Object is possibly 'undefined'
我怎样才能让编译器相信它不是未定义的?
我可以这样解决它:
const timer = this._timers.shift();
if(timer){
timer.stop();
}
但这似乎有点过于冗长,并且不必要地使用变量来绕过类型限制。
Thanks
有非空断言运算符,在 2.0 发行说明中提到(并将出现在很快就会有文档),适用于类似这样的情况。这是后缀!
,并且它抑制了这个错误:
if(this._timers.length > 0){
this._timers.shift()!.stop();
}
也可以看看https://stackoverflow.com/a/40350534/43848
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)