typescript - Angular Hatası TS2554: 0 argüman bekleniyordu, ancak pipelenmiş operatörlerde x alındı
Gözlemlenebilir getHappyDays()'in pipe'ında Error TS2554: 0 argüman bekleniyordu, ama 4 alındı hatası alıyorum
getHappyDays() Observable, Observable<HttpResponse<IHappyDays>> | Observable<HttpErrorResponse> döndürüyor, problemi daha iyi göstermek için bir stackblitze ekledim
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 içinde
Cevap #1
Sorun, getHappyDays()'deki birleşim dönüş türüdür. Bunu Observable<HttpResponse<IHappyDays> | HttpErrorResponse> olarak değiştirdiğinizde çalışacaktır (bkz: https://github.com/ReactiveX/rxjs/issues/3388).
Arayüz tasarımıyla ilgili not: Bu açık bir şekilde bir hata olduğundan HttpErrorResponse değerini döndürmezdim. Angular HttpClient dokümantasyonu, hatalarla nasıl başa çıkılacağı konusunda bazı yönergeler sağlamaktadır: https://angular.io/guide/http