angular – Property map does not exist on type Observable
angular – Property map does not exist on type Observable
You need to import the map
operator:
import rxjs/add/operator/map
Or more generally:
import rxjs/Rx;
Notice: For versions of RxJS 6.x.x
and above, you will have to use pipeable operators as shown in the code snippet below:
import { map } from rxjs/operators;
import { HttpClient } from @angular/common/http;
// ...
export class MyComponent {
constructor(private http: HttpClient) { }
getItems() {
this.http.get(https://example.com/api/items).pipe(map(data => {})).subscribe(result => {
console.log(result);
});
}
}
This is caused by the RxJS team removing support for using
See the breaking changes in RxJS changelog for more info.
From the changelog:
operators: Pipeable operators must now be imported from rxjs like so:
import { map, filter, switchMap } from rxjs/operators;
. No deep imports.
Revisiting this because my solution isnt listed here.
I am running Angular 6 with rxjs 6.0 and ran into this error.
Heres what I did to fix it:
I changed
map((response: any) => response.json())
to simply be:
.pipe(map((response: any) => response.json()));
I found the fix here:
https://github.com/angular/angular/issues/15548#issuecomment-387009186
angular – Property map does not exist on type Observable
Just write this command in the VS Code terminal of your project and restart the project.
npm install rxjs-compat
You need to import the map
operator by adding this:
import rxjs/add/operator/map;