【发布时间】:2021-11-14 06:39:11
【问题描述】:
我遇到了角度问题。我创建了一个应该调用另一个管道的管道,并使用循环检查数组的所有元素是否为假。如果一个为真,则返回真。我不知道为什么不允许我返回 Observable 布尔值..
我整天都在为这个错误而苦苦挣扎。如果有人能帮助我,我将不胜感激
错误:
TS2322:类型“可观察”不可分配给类型 “可观察”。类型“void”不可分配给类型 '布尔'。
transform(antwortElem: UiKat[]): Observable<boolean> {
if(!antwortElem){
return null;
}
return this.service.enabledState$.pipe(
map(enabledState => {
let enabled = false;
Elem.forEach((antwort) => {
if(enabledState[antwort.id] != null){
return enabledState[antwort.id];
}else{
return true;
}
})
})
)
}
【问题讨论】:
-
您不能从
forEach循环中“提前返回”。 -
您的意思是
some而不是forEach然后返回该值?return antwortElm.some(....? -
可能返回(null);会有帮助吗?
-
我认为
some是您要查找的内容,if(enabledState[antwort.struktur.id] != null)也是一个非常糟糕的检查,如果enabledState[antwort.struktur.id]未定义怎么办?它会返回 true。您应该使用!!运算符 (if (!!enabledState[antwort.struktur.id])) 或 (if (enabledState[antwort.struktur.id]))
标签: angular typescript pipe