首页 > 解决方案 > TypeScript 管道/地图错误 - TS2322 Type Observable<{} | User> 不可分配给 Observable

问题描述

我继承了一个 Angular 6 项目并遇到了我无法解决的错误。

有问题的代码是:

public UpdateUser(request: UpdateUserRequest): Observable<User> {
  this._spinner.show();
  return this.http.put<User>(`${API.USER.CRUD}/${request.id}`, request)
  .pipe(
    map((result) => {
        this._spinner.hide();
        this._toastr.success(SUCCESS.USER_UPDATE);
        return result;
    }),
    catchError((err: ErrorResponse) => {
        if (err && err.error && err.error.errors) {
        err.error.errors.map(m => this._toastr.error(m));
        }
        throw err;
  }));
}

返回的错误是:

错误 TS2322:类型 'Observable<{} | User>' 不可分配给类型 'Observable'。输入'{} | 用户”不可分配给类型“用户”。类型“{}”不可分配给类型“用户”。类型“{}”中缺少属性“id”。

错误 TS2322:类型 'Observable<{} | User>' 不可分配给类型 'Observable'。

如果我从.pipe以后删除,这很好,所以我确定问题出在地图/管道中,但不确定在哪里?

标签: angulartypescript

解决方案


推荐阅读