问题描述
我想使用三元运算符在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而不是使用三元语句, 否则,您将可以更有效地使用该语句下编写的语句。