错误TS2339:'Observable <response>'类型中不存在属性'map'?

时间:2018-05-08 12:16:23

标签: angular2-services

我在下面有一个简单的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)
}
}

3 个答案:

答案 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';

它奏效了...