如何在角度标记中进行空/未定义的安全字符串比较



所以我有以下条件:

<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是任何包含空字符串的假值,它将起作用。

最新更新