一个人如何用Javascript实现三元分配?

问题描述

我想使用三元运算符在Javascript(或Typescript)中重新分配类变量this.foo的重新分配取决于this.foo的当前值,我可以使用以下内容进行更新:

setFoo = () => {
    this.foo = this.foo ? "" : "foo";
}

但是,我想知道是否可以在不写两次this.foo的情况下重新分配this.foo。这将很有帮助,因为我试图动态更新Angular组件(用Typescript编写)上的类。

我希望能够编写类似以下内容的东西,这些东西使用真实/虚假值。如果this.foo是真实的,则分配"";否则,将分配"foo"

setFoo = () => {
    this.foo =? "" : "foo";
}

我尝试搜索类似的问题,但找不到答案。我最初的想法是在Typescript 4.0中使用?? =运算符,但我认为它不起作用。也许我不存在理想的解决方案,因为这可能是一种不良的编程习惯。谢谢

解决方法

很好的问题。 不幸的是,这不可能。有一些人使用的速记版本,但仍包含重复项:

foo = foo || otherCondition;

所以速记的简写,在我看来并不太有用。

简短的答案:我会选择普通的三元组。

,

您必须使用IF ELSE而不是使用三元语句, 否则,您将可以更有效地使用该语句下编写的语句。