Property 'map' does not exist on type 'Observable<Response>'
Solution 1:
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.
Solution 2:
Revisiting this because my solution isn't listed here.
I am running Angular 6 with rxjs 6.0 and ran into this error.
Here's 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
Solution 3:
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';
Solution 4:
For the Angular 7v
Change
import 'rxjs/add/operator/map';
To
import { map } from "rxjs/operators";
And
return this.http.get('http://localhost/ionicapis/public/api/products')
.pipe(map(res => res.json()));
Solution 5:
I had the same issue with Angular 2.0.1 because I was importing Observable from
import { Observable } from 'rxjs/Observable';
I resolve my problem on importing Observable from this path instead
import { Observable } from 'rxjs';