角错误TS2554:预期参数为0,但在管道运算符上得到x

时间:2019-02-11 20:46:00

标签: angular typescript

可观察的Error TS2554: Expected 0 arguments, but got 4的管道中有一个getHappyDays()

getHappyDays()可观察到的返回Observable<HttpResponse<IHappyDays>> | Observable<HttpErrorResponse>,我包含了stackblitze以便更好地展示问题

 resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
    Observable<IHappyDays> | Observable<never> {

    return this.happyService.getHappyDays()
      .pipe(//=>error thrown here
        first(),
        mergeMap((res) => {
          return of(res.body)
        })
      )
  }

https://stackblitz.com/edit/angular-3iujhb //在happy-resolver.service中

1 个答案:

答案 0 :(得分:1)

第一,pipe()之后缺少分号。主要问题是getHappyDays()中的联合返回类型。当您将其更改为Observable<HttpResponse<IHappyDays> | HttpErrorResponse>(请参阅:https://github.com/ReactiveX/rxjs/issues/3388)时,它将起作用。

关于界面设计的注意事项:我不会返回HttpErrorResponse作为值,因为这显然是一个错误。 Angular HttpClient文档提供了一些如何处理错误的准则:https://angular.io/guide/http