当前位置:  开发笔记 > 编程语言 > 正文

ts'Observable <Response>'类型中不存在属性'map'

如何解决《ts'Observable<Response>'类型中不存在属性'map'》经验,为你挑选了1个好方法。

我是angular和npm的新手,但是在学习的时候,我遇到了一个错误,代码看起来像我正在尝试重现的源(这里).

我认为这与我的开发环境有关,但我不能完全理解为什么.

这是我的代码:

return this.http.get('api/cards.json')
 .map((response:Response) => response.json().data)
 .do(data=>console.log(data))
 .catch(this.handleError);

.map,Visual Studio代码给我这个错误:

ts'Observable'类型中不存在属性'map'

如果我忽略此错误并转到浏览器,我会收到相同的消息.

我用the创建了我的项目angular-cli,而我的角度版本实际上是2.4.4.服务器正在使用该ng serve工具运行.

我做了一些搜索:

属性映射不存在于角度的可观察响应 - >我不使用visual studio 2015,而且,我最近使用我的Visual Studio代码(似乎这个bug已经解决了一段时间).

角2 2.0.0 RC.1住宅"地图"不上键入"可观测<响应>"不一样的问题的报告存在 - >我的命令行不知道什么tsc,我已经做了之后npm i typescript -g(和重启了两个VS codeng serve

知道出了什么问题(我想有些东西不是最新的,但我不知道是什么以及如何更新它).



1> Igor..:

您必须RxJs在模块/组件/服务中引用库(无论您在此处写什么),因为Observable(从中返回的类型http.get)是该库的一部分.在RxJs有很多运营商,您可以使用像map,catch,do,等,但为了使用这些,你必须引用的文件/文件它们包含在模块中.

角度站点上的教程很好地解释了如何使用它Observable以及如何创建引用映射到更常用的方法,如RxJslib中的map .通过创建一个单独的文件,引用RxJs库中更常用的运算符和类型,您只需要引用那个您想要使用这些类型的引用文件,这样就不必重新添加每个文件中的所有运算符/类型在您希望利用它们的项目中.

这是一个示例文件(rxjs-operators.ts以此示例命名),其中包含一些常用的方法.

// Observable class extensions
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/throw';

// Observable operators
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';

要在文件顶部使用.map(或任何其他方法)添加此行.

import './rxjs-operators';

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有