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;

Leave a Reply

Your email address will not be published.