javascript - 类型 'Observable<boolean | "“>' is not assignable to type ' 可观察< bool 值>” TS2322

标签 javascript angular typescript ngrx

我正在从 NgRx 商店选择 @ngrx/store": "7.3.0" .

// typeof state.id == string

export const selectIsSomethingPresent = createSelector(selector, state => {
  // standard null check
  return state.id && state.id !== "12345";
});

我将它分配给一个 Observable

isSomethingPresent$ !: Observable<boolean>;

someMethod() {
  this.isSomethingPresent$ = this.store.select(selectIsSomethingPresent);
}

我收到此错误:

Type 'Observable<boolean | "">' is not assignable to type 'Observable<boolean>'.

为什么 typescript 会这样?

仅供引用return ("12345" && true)抛出同样的错误。

最佳答案

因为 state.id 类型是 string,空字符串 && true 将返回空字符串而不是 bool 值,因此您需要转换 state。 id bool 值

return Boolean(state.id) && state.id !== "12345";

关于javascript - 类型 'Observable<boolean | "“>' is not assignable to type ' 可观察< bool 值>” TS2322,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57774238/

相关文章:

javascript - JS Promise - 立即从返回 Promise 的函数中检索一些数据

javascript - jQuery:通过搜索输入隐藏表行,解决 td rowspan 和 colspan

javascript - 如何将长链接替换为短链接?

angular - 反转 mat-checkbox 的 "checked"值

带有参数和获取参数的 Angular 路由

reactjs - 属性在类型 Window 和 typeof globalThis 上不存在

javascript - Bootstrap 表导出和分页问题

json - 如何在屏幕上显示 JSON 表示而不是 [Object Object]

javascript - 如何在 Angular 中将非哈希 URL 重定向到具有哈希的 URL?

node.js - Mongoose - 链接到同一类型的嵌套子文档