У меня есть простая служба angular2 ниже, и во время работы я получаю сообщение об ошибке "ошибка TS2339: свойство 'map' не существует для типа 'Observable'". Я импортировал все операторы, но все еще не работает. есть идеи по этому поводу?
import { Injectable } from '@angular/core'; import { Http, Response } from '@angular/http'; import { Observable } from 'rxjs'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import { Currency } from './currency'; @Injectable({ providedIn: 'root' }) export class AppService { private baseUrl: any = 'https://api.fixer.io/latest?base='; constructor(private http: Http) { } getCurrencyRates(base: string): Observable<Currency[]> { return this.http.get(this.baseUrl + base) .map((res: Response) => res.json()) .catch(err => err) } }
Убедитесь, что вы добавили "import {Observable} from 'rxjs';" а затем попробуйте "import {map} from 'rxjs / operator';" или "import {map} from 'rxjs / operator';" ... вместо "import 'rxjs / add / operator / map';" .Я знаю, что это должно быть добавлено для Angular 5, но это может работать и для Angular 2.
я получил ту же ошибку, но я сделал эту установку npm,
npm install --save rxjs-compat
и импортируется в служебный файл,
import 'rxjs/Rx';
это сработало ...
Исходя из этого вопроса: Должен ли я использовать `import 'rxjs / Rx'` и` import {Observable} из' @ rxjs / Observable'`
import { Observable } from 'rxjs/Observable'