是否可以在Typescript中解包可选/可空值?

问题描述 投票:3回答:1

我习惯了Swifts的可选值,看看Typescript有类似的东西。对于像属性的惰性初始化这样的东西,有一个私有属性是nullable和一个public getter,它将在请求时初始化值。

class Test {
   private _bar: object:null = null;
   get bar(): object {
       if (_bar === null) {
           _bar = { };
       }
       return _bar;
   }
}

我知道我可以使用undefined,并从私有成员中删除可空类型信息,但我想知道是否有办法这样做,而不必永远与属性携带该null。我要从一个我想处理空值的地方到一个我不再希望迫使任何人处理可空值的边界。

typescript lazy-initialization
1个回答
1
投票

您可以在TypeScript中执行此操作,如下所示:

class Test {
  private _bar?: object;
  get bar(): object {
    if (this._bar === undefined) {
        this._bar = { };
    }
    return this._bar;
  }
}

通常使用undefined而不是null在TypeScript中更惯用。

© www.soinside.com 2019 - 2024. All rights reserved.