错误TS2322:输入'Observable <{} | T>'不能赋值为'Observable <T>'

Odd*_*eif 1 rxjs angular angular7

我找到了针对Angular的异步管道错误处理的这个检查,看起来很有希望:https://sebastian-holstein.de/post/error-handling-angular-async-pipe/

尝试以角度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();
      })
    );
  }
Run Code Online (Sandbox Code Playgroud)

错误:

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'.
Run Code Online (Sandbox Code Playgroud)

全班

在此输入图像描述

有关如何修复的任何建议?

use*_*994 6

这是因为你这样做return of();,传递的值of不是类型T.

您可以改为执行return of(null);,或确保将类型T的值传递给of函数.