模板中是否有typescript中三元运算符的简短版本?

模板中是否有typescript中三元运算符的简短版本?,typescript,conditional-operator,undefined-reference,Typescript,Conditional Operator,Undefined Reference,我还没有找到一个能够解决这个问题的问题,除此之外,我认为这个问题不适用于模板 我想知道是否有类似的perl定义或运算符/ 如果存在,我想使用一个值,否则没有: my$value=$variable\u(如果存在)/$if\u(如果不存在)\$this\u; 以下哪一个是简短版本: my$value=$variable\u(如果存在)$变量_if_存在:$if_not_this_; 在角度上是否有类似的东西,我发现我自己在很多情况下都在写这篇文章: {{item.propery?item.pr

我还没有找到一个能够解决这个问题的问题,除此之外,我认为这个问题不适用于模板

我想知道是否有类似的perl
定义或
运算符
/

如果存在,我想使用一个值,否则没有:

my$value=$variable\u(如果存在)/$if\u(如果不存在)\$this\u;
以下哪一个是简短版本:

my$value=$variable\u(如果存在)$变量_if_存在:$if_not_this_;
在角度上是否有类似的东西,我发现我自己在很多情况下都在写这篇文章:

{{item.propery?item.propery:'}

我认为它在代码中看起来不太好,如果出现不符合预期的情况,它会使您在同一位置更改两个变量。

在Typescript和Javascript中,您不仅可以对布尔变量使用
|
操作符,还可以链接其他表达式。像这样:

{{$if_将_计算为某个实际值| |$value_else}

“Truish”值是除
false
0
'
null
未定义的值以外的所有值。

如果第一个变量为“falsy”,则将计算
|
运算符后的表达式。

@RobertoZvjerković-无效合并运算符将不满足OP的需要。OP针对第一个变量“不存在”—请尝试
让a=b??22
了解我的意思。不要将决策留到模板上。在视图模型上创建一个属性或封装必要选择的属性,然后使用该新属性。归根结底,您不希望视图中有太多的逻辑。David-您是否尝试过使用语法进行赋值?类似于
让a=b | | 22?你可能会对这样的结果感到惊讶,因为它会推翻你的答案。但这正是OP所要求的“如果第一个不存在……”。我没有投你反对票,但你应该重新考虑你的答案。我以前用过好几次。我使用Typescript 4.1.5(Angular 11)创建了一个包含多个赋值的小程序。查看控制台以显示输出。我意识到的一件事是,一个空字符串
'
也是一个“falsy”值(我把它添加到原始答案中)。我不确定结果应该如何撤销我的答案?因为不存在
b
!==未定义的
b
-您在每个案例中都创建了
b
。我的观点与一个不存在的变量直接相关-逻辑OR将抛出并抱怨
b
不存在。试试看,你会发现。我在codesandbox中添加了两个新案例。案例10显示了另一个(技术上)工作示例,尽管过梁已经显示了一个问题。这里,我们处理一个有效对象的不存在属性。案例11显示了导致引用错误的行。据我所知,此行的问题与
|
运算符无关,而是与根本没有有效符号
b
有关。为了更好地理解,我们在这里应该问的问题是:一个未定义的
b
(案例11的linter消息)和一个不存在的
b
(案例10的linter消息)有什么区别?是的,这是要问的问题-OP。如果OP在
|
的左侧没有创建变量,那么,如我所述,你的答案不是固定的。另一方面,如果OP创建了一个变量,但该变量是“falsy”,那么您的答案就是正确的。