所以我有以下情况:
<span *ngIf="!someItem?.description==''">
条件:如果定义了 someItem 并且描述不是空字符串。一般来说,我们可以说不等于某个X。
这适用于开发环境,当 someItem
设置或未设置时,以及当描述为空或不为空时。但是在生产版本中,我收到以下错误:
Operator '==' cannot be applied to types 'boolean' and '""
我应该如何编写这样的条件以使其在生产版本上保持空安全和有效?
最佳答案
!
运算符优先于 ==
,因此这本质上是 (!someItem?.description) == ''
,它将进行比较 bool 值到字符串,这是不允许的。
您可能想使用someItem?.description != ''
。即使 someItem
未定义,这也会正常工作,因为它会比较允许的 undefined != ''
。但是,这可能不会达到您想要的效果,因为 undefined != ''
。
最终,您可能需要使用 *ngIf="!someItem?.description"
,如果 someItem
未定义,没有 description
属性或 description
是任何错误值,包括空字符串。
关于angular - 如何在 Angular 标记中进行空/未定义的安全字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48120788/