Javascript 类型';可观察<;布尔值&引用&燃气轮机';不可分配给类型';可观察<;布尔值>';TS2322

Javascript 类型';可观察<;布尔值&引用&燃气轮机';不可分配给类型';可观察<;布尔值>';TS2322,javascript,angular,typescript,ngrx,Javascript,Angular,Typescript,Ngrx,我正在从NgRx商店@NgRx/store中选择:“7.3.0” 我把它分配给一个可观测的 isSomethingPresent$ !: Observable<boolean>; someMethod() { this.isSomethingPresent$ = this.store.select(selectIsSomethingPresent); } isSomethingPresent$!:可见; someMethod(){ this.isSomethingPresen

我正在从NgRx商店
@NgRx/store中选择:“7.3.0”

我把它分配给一个可观测的

isSomethingPresent$ !: Observable<boolean>;

someMethod() {
  this.isSomethingPresent$ = this.store.select(selectIsSomethingPresent);
}
isSomethingPresent$!:可见;
someMethod(){
this.isSomethingPresent$=this.store.select(selectIsSomethingPresent);
}
我得到了这个错误:

类型“Observable”不可分配给类型“Observable”。

为什么typescript会这样做


fyi
return(“12345”&&true)
会引发相同的错误。

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

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

由于
state.id
类型是
字符串
,因此空字符串&&true将返回空字符串而不是布尔值,因此需要将
state.id
转换为
布尔值

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

他们为什么
返回“12345”和&true
抛出相同的错误?@KacperCieluch请参阅。注意,您可以使用
!!state.id
而不是
布尔值(state.id)
@AndrewAllen在我看来,使用
布尔值()
然后
!!
他们为什么
返回“12345”更具可读性“&&true
抛出相同的错误?@KacperCieluch-see。注意:您可以使用
!!state.id
而不是
Boolean(state.id)
@AndrewAllen在我看来,使用
Boolean()
然后使用
,可读性更强