Angular 6:出现错误模块 "rxjs/add/operator/map" 和另一个错误 'map' 在类型 'Observable<Response>' 上不存在

Angular 6 : where getting error module "rxjs/add/operator/map" and another error 'map' does not exist on type 'Observable<Response>'

我在使用 Angular 6 时遇到两个错误 -

  1. ./src/app/app/img/img.service.ts 中的错误 找不到模块:错误:无法解析“/Users/user/Projects/A4/imageSearch/src/app/app/img”

  2. 中的 'rxjs/add/operator/map'
  3. src/app/app/img/img.service.ts(21,9) 中的错误:错误 TS2339:属性'map' 在类型 [=29 上不存在=].

这就是我们如何在 rxjs 6 中导入 observable 和 map

import {Observable} from 'rxjs';
import {map} from 'rxjs/operators';

我遇到了与 rxjs map 运算符类似的问题。目前我正在使用 Angular 6. 要知道您使用的是哪个版本:

ng --version

ng -v

如果您也在使用angular6,请查看https://www.academind.com/learn/javascript/rxjs-6-what-changed/

  1. 需要您更改导入语句的不同内部结构
  2. pipe() 作为一种链接运算符的方法,旧的链接它们的方法将行不通

假设您将 map 用于 http.get 方法:

import { map } from 'rxjs/operators';

private url = "some site...";
  constructor(private http: HttpClient) { }

  dailyForecast() {
    return this.http.get(this.url).pipe(map(result => result));
  }

不是: this.http.get(this.url).map(result => result);

运行 命令在你的包中。

npm 安装 --save rxjs-compat

并在您的文件中导入以下行。

进口'rxjs-compat';

对于 rxjs 6,导入路径已更改。 请像这样导入运算符

  1. 从 'rxjs' 导入 {Observable};
  2. 从 'rxjs/operators' 导入 {map};

希望有用。