angular - 错误 TS2322 : Type 'Observable<{} | T>' is not assignable to type 'Observable<T>'

标签 angular rxjs angular7

我发现这个用于 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'.

全类

enter image description here

关于如何修复有什么建议吗?

最佳答案

这是因为您执行了return of();,而传递给of 的值不是T 类型。

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

关于angular - 错误 TS2322 : Type 'Observable<{} | T>' is not assignable to type 'Observable<T>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53359721/

相关文章:

Angular http请求可观察到的错误没有捕获错误?

javascript - mat 表,可通过验证在行中动态添加行和可编辑字段

javascript - 获取空格之前和之后的符号 (JS)

angular - 在发出两个可观察对象的第一个值后,Zip 不发出值

reactive-extensions-js - 将 RxJS Observable 收集到数组

angular - 在 Angular NGXS 中访问数组内的嵌套对象

angular - 类型 'map' 上不存在属性 'Observable<Blob>'

Angular:覆盖组件的功能

angular - Object.observe 退出和 RxJS 和 Angular 2

angularjs - Safari 中的混合 AngularJS 和 Angular 应用程序性能低下