如何在 angular 标记中进行 null/undefined 安全字符串比较?
How to make null/undefined safe string comparision in angular markup?
所以我有以下条件:
<span *ngIf="!someItem?.description==''">
条件:如果定义了 someItem 并且 description 不是空字符串。一般来说,我们可以说不等于某个X。
这在开发环境中有效,当 someItem
设置和未设置时,以及当描述为空和不为空时。但是在生产构建中,我收到以下错误:
Operator '==' cannot be applied to types 'boolean' and '""
我应该如何编写这样的条件以使其在生产构建中保持空安全和有效?
!
运算符优先于 ==
,因此这本质上是 (!someItem?.description) == ''
,它将布尔值与不允许的字符串进行比较。
您可能想使用 someItem?.description != ''
。即使 someItem
未定义,这也能正常工作,因为它会比较 undefined != ''
,而 是 允许的。但是,这可能无法满足您的需求,因为 undefined != ''
.
最终你可能想要使用 *ngIf="!someItem?.description"
如果 someItem
未定义,没有 description
属性,或者 description
是任何虚假值,包括空字符串。
所以我有以下条件:
<span *ngIf="!someItem?.description==''">
条件:如果定义了 someItem 并且 description 不是空字符串。一般来说,我们可以说不等于某个X。
这在开发环境中有效,当 someItem
设置和未设置时,以及当描述为空和不为空时。但是在生产构建中,我收到以下错误:
Operator '==' cannot be applied to types 'boolean' and '""
我应该如何编写这样的条件以使其在生产构建中保持空安全和有效?
!
运算符优先于 ==
,因此这本质上是 (!someItem?.description) == ''
,它将布尔值与不允许的字符串进行比较。
您可能想使用 someItem?.description != ''
。即使 someItem
未定义,这也能正常工作,因为它会比较 undefined != ''
,而 是 允许的。但是,这可能无法满足您的需求,因为 undefined != ''
.
最终你可能想要使用 *ngIf="!someItem?.description"
如果 someItem
未定义,没有 description
属性,或者 description
是任何虚假值,包括空字符串。