我发现了这个关于Angular异步管道错误处理的示例,它看起来很有前途:https://sebastian-holstein.de/post/error-handling-angular-async-pipe/
尝试在angular 7中运行它会导致编译错误
readonly data$: Observable<T>;
constructor(data: Observable<T>) {
this.data$ = data.pipe(
shareReplay(1),
catchError(error => {
console.log(error);
this._errorLoading$.next(true);
return of();
})
);
}
错误:
ERROR in src/app/loading-wrapper.ts(12,5): error TS2322: Type 'Observable<{} | T>' is not assignable to type 'Observable<T>'.
Type '{} | T' is not assignable to type 'T'.
Type '{}' is not assignable to type 'T'.
全班
关于如何修复的任何建议?
答案 0 :(得分:6)
这是因为您执行return of();
,并且传递给of
的值不是T
类型。
您可以改为执行return of(null);
,或确保将类型T的值传递给of
函数。
答案 1 :(得分:0)
尝试以下声明:
readonly data$: Observable<{} | T>;