我习惯于使用Swift的可选值,并且发现TypeScript有类似的东西。对于像属性的延迟初始化这样的事情,拥有一个可为空的私有属性和一个公共的getter,在请求时初始化该值会很不错。
class Test {
private _bar: object:null = null;
get bar(): object {
if (_bar === null) {
_bar = { };
}
return _bar;
}
}
我知道我可以使用undefined来达到这个目的,并删除私有成员的可空类型信息,但我想知道是否有一种方法可以在不必一直携带该属性的null值的情况下完成此操作。 我正在从需要处理空值的地方到一个不再希望强制任何人处理可空值的界限。
null
更合适或者是有效的值,并且你想在某个时候将其转移到不再可空的值。 - kvnif let nonOptVal = optVal {}
或者我可以使用guard let nonOptVal = optVal else { throw err }
,然后数据就存储在非可选变量nonOptVal
中,假设值存在,我可以使用它。我想知道Typescript中是否有相当的方法。到目前为止,我唯一的解决方法是将类型转换为不包括|undefined
或|null
的类型。 - kvnif ((value = this.optionalValue) != undefined) { console.log(value+" 是有效的") }
- gabriel_vincent