Sir,
I am going through your Pluralsight course on Angular Services, about to complete 5. Demo: Abstracting Away HTTP Error, after completing the required coding for this, I got this below compilation error. Also below are the code portions on dashboard component and data service class. Kindly help.
------ Error ------
โ Browser application bundle generation complete.
Error: src/app/dashboard/dashboard.component.ts:31:11 - error TS2769: No overload matches this call.
The last overload gave the following error.
Argument of type '(data: Reader[]) => Reader[]' is not assignable to parameter of type '(value: Reader[] | BookTrackerError) => void'.
Types of parameters 'data' and 'value' are incompatible.
Type 'Reader[] | BookTrackerError' is not assignable to type 'Reader[]'.
Type 'BookTrackerError' is missing the following properties from type 'Reader[]': length, pop, push, concat, and 26 more.
31 (data: Reader[]) => this.allReaders = data,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/rxjs/internal/Observable.d.ts:54:5
54 subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
~~~~~~~~~
The last overload is declared here.
------ Dashboard component ------
...
this.dataService.getAllReaders()
.subscribe(
(data: Reader[]) => this.allReaders = data,
(err: BookTrackerError) => console.log(err.frendlyMessage),
() => this.loggerService.log('All done getting readers!')
);
...
------ Data service ts ------
getAllReaders(): Observable<Reader[] | BookTrackerError> {
return this.http.get<Reader[]>('/api/errors/500')
.pipe(
catchError(this.handleError)
);
}
private handleError(error: HttpErrorResponse): Observable {
let dataError=new BookTrackerError();
dataError.errorNumber = 100;
dataError.message = error.statusText;
dataError.frendlyMessage = 'An error occured retrieving data.';
return throwError(dataError);
}