typescript - Angular-feil TS2554: Forventet 0 argumenter, men fikk x på pipede operatorer
Jeg har en Error TS2554: Forventet 0 argumenter, men fikk 4 i pipen til observablen getHappyDays()
getHappyDays() Observable returnerer en Observable<HttpResponse<IHappyDays>> | Observable<HttpErrorResponse>, jeg har inkludert en stackblitze for å bedre vise problemet
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/i happy-resolver.service
Svar #1
Problemet er union-returtypen i getHappyDays(). Det vil fungere når du endrer den til Observable<HttpResponse<IHappyDays> | HttpErrorResponse> (se: https://github.com/ReactiveX/rxjs/issues/3388).
Merk angående grensesnittdesign: Jeg ville ikke returnere HttpErrorResponse som en verdi siden dette åpenbart er en feil. Angular HttpClient-dokumentasjonen gir noen retningslinjer for hvordan man håndterer feil: https://angular.io/guide/http