Deepankar
Deepankar

Reputation: 138

Angular 11 Interceptor implementation keeps showing Typescript error

Here is a code in Angular 11, RxJs 6

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
  return next.handle(this.setAuthHeader(request)).pipe(
    catchError(err => {
      if (err instanceof HttpErrorResponse) {
        switch ((err as unknown as HttpErrorResponse)?.status) {
          case 401:
            localStorage.removeItem('loggedIn');
            this.shared.logger.next('Authorization Failed');
            return this.handle401Error(request, next);
          default:
            return throwError(err);
        }
      } else {
        return throwError(err);
      }
    })
  );
}

Seems like a very simple approach. But I keep getting error

enter image description here

What am I doing wrong here ?

Upvotes: 0

Views: 182

Answers (1)

Deepu Reghunath
Deepu Reghunath

Reputation: 9673

change catchError parameter as follows

    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
       return next.handle(this.setAuthHeader(request))
        .pipe(filter(e => (e instanceof HttpResponse)),
            catchError((error: HttpErrorResponse) => {
               ....

Upvotes: 1

Related Questions