无法在一行中检查嵌套对象变量

and*_*ini 0 typescript ionic-framework angular

我需要在用户第一次访问该页面时向他显示欢迎模式。

这段代码工作正常:

if(this.app_data) {
  if(this.app_data['company']){
    if(this.app_data['company']['welcomed'] === false){
      this.openWelcomeModal();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是检查嵌套变量结构的混乱代码。

明确的方法是使用一行,如下所示:

if(this.app_data['company']['welcomed'] === false){
  this.openWelcomeModal();
}
Run Code Online (Sandbox Code Playgroud)

但这会产生错误:

if(this.app_data) {
  if(this.app_data['company']){
    if(this.app_data['company']['welcomed'] === false){
      this.openWelcomeModal();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在一行中完成它,而不需要检查嵌套对象的每一层?

nat*_*mar 5

Optional chaining来救援!

if(this.app_data?.['company']?.['welcomed'] === false){
  this.openWelcomeModal();
}
Run Code Online (Sandbox Code Playgroud)

  • @anderlaini 请[编辑]您的问题以显示显示您遇到的错误的[mre]。 (2认同)