1

我按照指南从 TSLint 迁移到 ESLint 。现在,我收到此错误消息:

不应该否定异步管道。使用 (observable | async) === (false | null | undefined) 来检查它的值

这是给定的解释

Angular 的异步管道在 observable 发出任何值或 promise 解析之前最初发出 null。这可能会导致否定,例如 *ngIf=”!(myConditional | async)” 破坏布局并导致昂贵的副作用,例如触发不应显示的组件的 XHR 请求。

但我不理解建议的解决方案,尤其是按位 OR : false | null | undefined。当我尝试(false | null | undefined)在模板中编写时,Angular 似乎将nullandundefined视为管道(这似乎是合法的)并抛出错误消息。即使在 html 模板之外,这个按位 OR 也只返回 0,那么有什么意义呢?我也试过false || null || undefined,但它实际上相当于undefined

我错过了什么 ?还是错误信息具有误导性?那我该怎么写呢?

我拥有的最好的是这个,但它很丑:

(observable | async) === false || (observable | async) === undefined
4

0 回答 0