J4N*_*J4N 2 javascript npm angularjs typescript visual-studio-code
我是angular和npm的新手,但是在学习的时候,我遇到了一个错误,代码看起来像我正在尝试重现的源(这里).
我认为这与我的开发环境有关,但我不能完全理解为什么.
这是我的代码:
return this.http.get('api/cards.json')
.map((response:Response) => <Card[]>response.json().data)
.do(data=>console.log(data))
.catch(this.handleError);
Run Code Online (Sandbox Code Playgroud)
在.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 code和ng serve
知道出了什么问题(我想有些东西不是最新的,但我不知道是什么以及如何更新它).
您必须RxJs在模块/组件/服务中引用库(无论您在此处写什么),因为Observable(从中返回的类型http.get)是该库的一部分.在RxJs有很多运营商,您可以使用像map,catch,do,等,但为了使用这些,你必须引用的文件/文件它们包含在模块中.
角度站点上的教程很好地解释了如何使用它Observable<T>以及如何创建引用映射到更常用的方法,如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';
Run Code Online (Sandbox Code Playgroud)
要在文件顶部使用.map(或任何其他方法)添加此行.
import './rxjs-operators';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4981 次 |
| 最近记录: |