所以我有以下条件:
<span *ngIf="!someItem?.description==''">
条件:如果定义了某个项,并且描述不是空字符串。一般来说,我们可以说不等于一些X。
这适用于开发环境,当someItem
设置和未设置时,以及当说明为空和不为空时。但是在生产版本中,我收到以下错误:
Operator '==' cannot be applied to types 'boolean' and '""
我应该如何编写这样的条件以使其在生产版本上保持 null 安全和有效?
!
运算符优先于 ==
因此这本质上是(!someItem?.description) == ''
将布尔值与不允许的字符串进行比较。
您可能想使用 someItem?.description != ''
.即使未定义someItem
,这也将正常工作,因为它将比较undefined != ''
允许的。但是,这可能不是您想要的,因为undefined != ''
.
最终,您可能希望使用*ngIf="!someItem?.description"
如果someItem
未定义、没有 description
属性或description
是任何包含空字符串的假值,它将起作用。