尝试各种导入后,我仍然收到错误:属性'map'在类型 'Observable<Object>' 上不存在



这个问题以前有人问过,但是我已经尝试了其他人得到的解决方案,但它们对我不起作用。我在这个问题的底部列出了我尝试过的解决方案。

在我的ionic2应用程序中尝试多个导入变体后,我仍然收到错误,

Property 'map' does not exist on type 'Observable<Object>'.

尝试使用 RXJS 中的 map 函数时。以下是我的代码。

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
/*
  Generated class for the LevelTestDataProvider provider.
  See https://angular.io/guide/dependency-injection for more info on providers
  and Angular DI.
*/
@Injectable()
export class LevelTestDataProvider {
  constructor(public http: HttpClient) {
    console.log('Hello LevelTestDataProvider Provider');
  }
  getRemoteData() {
    this.http.get('PUT JSON URL HERE').map((res: Response) => res.json()).subscribe(data => {
      console.log(data);
    })
  }
}

我尝试了以下导入语句:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';

import { Observable } from 'rxjs'; // causes an error
import 'rxjs/add/operator/map';

import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';

import { map } from "rxjs/operators"; // causes an error

import 'rxjs/Rx';

此外,我确保我的打字稿版本是最新的。它当前版本为 2.6.2。我仔细检查了我的package.json文件是否反映了这个版本。

更新 1:我的 RxJS 版本是 5.5.2

从版本 v5 开始,我们应该使用

管道运营商

此外,res.json()在Angular的新HttpClient中不起作用。res已经是解析的 json 对象。

import { map } from 'rxjs/operators';
import { Observable } from 'rxjs/Observable';
this.http.get('PUT JSON URL HERE')
.pipe(map((res: Response) => {
    return res.json(); // will not work using HttpClient
    return res;
))
.subscribe(data => {
      console.log(data);
})

最新更新