1

我从以下代码中收到以下错误:

错误 TS2345:类型“ (err: any) => void | Observable<any>”的参数不可分配给类型“ (err: any, caught: Observable<HttpEvent<any>>) => ObservableInput<any>”的参数。类型 ' void | Observable<any>' 不能分配给类型ObservableInput<any>'。
类型“ void”不可分配给类型“ ObservableInput<any>

这是我的代码:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(this.addToken(req, this.authService.getAuthToken()))
        .catch(err => {
            if (err instanceof HttpErrorResponse) {
                switch ((<HttpErrorResponse>err).status) {
                    case 403:
                        return this.handle403Error(req, next);
                    case 401:
                        return this.authService.logout(() => {
                            return this.router.navigateByUrl('/auth/login');
                        });
                    case 400:
                        return Observable.throw(err);
                    default:
                        return Observable.throw(err);
                }
            } else {
                return Observable.throw(err);
            }
        });
}
4

0 回答 0