typescript 如何在javascript中使用三元运算符内部的多个方法

o4tp2gmn  于 2023-01-06  发布在  TypeScript
关注(0)|答案(2)|浏览(296)

如果条件成功,则尝试在三元运算符内使用多个方法(this.test(),this.flag = true)。但不起作用。出现如下错误:
应为“:"。

public core = [1];
  public mare = [2];
  public flag:boolean = false;
  public msg:string;

  ngOnInit() { 
     this.core.length == 1 && this.mare.length == 1 ? this.msg = 'Done', this.flag = true : '';
  }

  test() {
     console.log('Done');
     console.log()
  }

演示:https://stackblitz.com/edit/angular-ivy-n7txpp?file=src%2Fapp%2Fapp.component.ts

ohtdti5x

ohtdti5x1#

不要滥用三元运算符--它们不能代替if语句。它们只应该在非常简单的情况下使用。使用if语句可以使你的代码更简洁,更易于维护。

if(this.core.length == 1 && this.mare.length == 1){
  this.msg = 'Done';
  this.flag = true;
}
4c8rllxm

4c8rllxm2#

使用()

this.core.length == 1 && this.mare.length == 1 ? (this.test(), this.flag = true) : '';

或将this.flag=true移动到test
虽然评论中指出
为什么要用三元条件运算符?你不用赋值,只用if语句/block. if(this. core. length == 1 && this. mare. length == 1){this. test();此标志=真;}

相关问题