Angular 2:属性&#39; toPromise&#39;在类型&#39; Observable <response>&#39;上不存在

时间:2016-07-27 08:03:18

标签: angular rxjs angular2-services

我正在开发Angular 2项目并关注Http Client Guide以实现HTTP请求但在使用RsJx模块时收到以下错误。

  

财产&#39; toPromise&#39;类型&#39; Observable&#39;

上不存在

我已完成以下操作,但错误仍然存​​在:

  • import 'rxjs/add/operator/toPromise'; 添加到服务模块
  • 检查RxJs库的版本是否存在依赖关系。
  • RxJs library
  • 导入所有模块

您可以在Github上找到我的源代码here。请指导我应该做什么以及我缺少什么。谢谢。

您可以在 rxjs-operators.ts 文件中找到所有导入,我已在 app.component.ts 文件中引用它以使其全局但仍然是我在 dragon.service.ts 文件中出错。 此外,.map()以及也显示相同的错误。

您可以在 package.json 文件中找到所有版本的详细信息。

其他详情如下:

  • 节点版本:v4.4.7
  • npm version:v3.10.5
  • 角度版本:2.0.0-rc.4
  • RxJs版本:5.0.0-beta.6

注意: 目前我已对代码进行了评论,但您可以根据需要进行修改。

2 个答案:

答案 0 :(得分:6)

请查看: Angular 2 2.0.0-rc.1 Property 'map' does not exist on type 'Observable<Response>' not the same as issue report

&#34;对于VS 2015(更新3):

安装VS 2015 Update 3将C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js替换为https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-U3/lib/typescriptServices.js中的文件。首先进行本地备份。&#34;

此解决方法修复了&#34; 属性&#39; toPromise&#39;不存在&#34;我的问题。

答案 1 :(得分:1)

我认为这是Visual Studio中的一个错误(我猜你在VS2015中看到了这种行为?)当我尝试在VS2015中使用Angular2应用程序时,我确实遇到了这个问题。

作为一种解决方法,您可以尝试使用Visual Studio Code来处理项目。我使用VS Code打开了您引用的存储库,并验证它是否具有rxjs扩展的intellisense(如toPromise)。但是,正如您所说,在VS2015中,未找到rxjs扩展并显示为错误。