我在下面有一个简单的angular2 serive并且在运行时我得到错误“错误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)
}
}
答案 0 :(得分:0)
基于这个问题:Should I use both `import 'rxjs/Rx'` and `import { Observable } from '@rxjs/Observable'`
import { Observable } from 'rxjs/Observable'
答案 1 :(得分:0)
确保在&#39; rxjs&#39;;&#34;中添加&#34; import {Observable}然后尝试从&#39; rxjs / operator&#39;;&#34;导入{map}。或者&#34;从&#39; rxjs /运算符&#39;;&#34;中导入{map}; ...而不是&#34; import&#39; rxjs / add / operator / map&#39;;&#34;我知道必须为Angular 5添加这个,但这也可以在角度2中运行。
答案 2 :(得分:0)
我遇到了同样的错误,但是我安装了npm,
npm install --save rxjs-compat
并将其导入到服务文件中
import 'rxjs/Rx';
它奏效了...