Angular 2 2.0.0-rc.1属性'map'在types'Observable <Response>'上不存在与问题报告不一样

而这看起来像Angular 2 beta.17一样的问题:属性“地图”不存在types“Observable <Response>”

这是一个新版本,这些解决scheme不适用于这个新的发布版本

我已经更新到最新的Angular 2 rc1,无法编译。 我有没有承认'承诺'的问题,我最终安装es6-承诺打字直接解决这个问题。 我已经尝试了各种import报表,但没有运气。 我正在使用visual studio 2015

import 'rxjs/Rx'; import {Observable} from 'rxjs/Observable'; import {Observer} from 'rxjs/Observer'; import 'rxjs/add/operator/share'; import 'rxjs/add/operator/map'; return this._http.post(url, null, args).map(extractData).toPromise(); 

但继续得到属性'地图'不存在types'可观察'

我的包文件是

 "dependencies": { "@angular/common": "2.0.0-rc.1", "@angular/compiler": "2.0.0-rc.1", "@angular/core": "2.0.0-rc.1", "@angular/http": "2.0.0-rc.1", "@angular/platform-browser": "2.0.0-rc.1", "@angular/platform-browser-dynamic": "2.0.0-rc.1", "@angular/router": "2.0.0-rc.1", "@angular/router-deprecated": "2.0.0-rc.1", "systemjs": "0.19.27", "es6-shim": "^0.35.0", "reflect-metadata": "^0.1.3", "rxjs": "5.0.0-beta.6", "zone.js": "^0.6.12", "bootstrap": "^3.3.6", "breeze-client": "~1.5.6", "handlebars": "^4.0.5" }, "devDependencies": { "typescript": "^1.8.10", "typings": "^0.8.1", "gulp": "^3.9.1", "jasmine-core": "~2.4.1", "karma": "^0.13.22", "karma-chrome-launcher": "^0.2.3", "karma-coverage": "^0.5.5", "remap-istanbul": "^0.6.3", "karma-jasmine": "^0.3.8", "karma-jasmine-html-reporter": "^0.2.0", "http-server": "^0.9.0" } 

你试过这个导入吗? 它适用于我

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

这是解决方法。 jjokela和VahidN也暗示了他们的意见。 我在这里看到了Deborah Kurata的博客文章。 她概述了使用Angular2与ASP.NET 4项目模板不是我正在使用的新的ASP.NET 5 RC模板。

修复请参考https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507

此修补程序旨在包含在Visual Studio的Typescript 2.0版本中。 直到您可以执行下面的手动步骤。

对于VS 2015(更新3):

安装VS 2015 Update 3用https://raw.githubusercontent.com/Microsoft/TypeScript中的文件replaceC:;\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js /Fix8518-U3/lib/typescriptServices.js 。 首先采取本地备份。

对于VS 2015(更新2):

安装VS 2015更新2用https://raw.githubusercontent.com/Microsoft/TypeScript中的文件replaceC:;\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js /Fix8518/lib/typescriptServices.js 。 首先采取本地备份。

对于VS 2013:

安装TypeScript 1.8.5( https://www.microsoft.com/en-us/download/details.aspx?id=48739 )replaceC:\ Program Files文件(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js与在https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js中的文件。; 首先采取本地备份。

我有同样的问题。 在将这行添加到AppComponent类后,似乎已经解决了。

 import 'rxjs/Rx'; 

除了

 import { Observable } from 'rxjs/Rx'; 

这个问题很可能与https://github.com/Microsoft/TypeScript/issues/7415有关,; 它还没有看到完整的VS版本。 可以在本地构build源代码并使用VS开发模式 。

升级到Angular2 RC后,我遇到了同样的问题。 我得到VS 2015 Intellisense属性'map'的错误不存在types'Observable'。

我用grunt-ts来做我的transpiling,所以它不会影响我的编译能力,但是当编辑器不在以前的时候把它看成是错误的时候很烦人。

我相信这个问题是用于Visual Studio的下载。 https://www.microsoft.com/en-us/download/details.aspx?id=48593

它目前在版本1.8.6,我相信它驱动Visual Studio的intellisense,也是如果你正在configuration打字稿编译。 所以我们可能需要等待Visual Studio的新版本的Typescript放弃。

你的import是好的。 问题的根源在https://github.com/ReactiveX/rxjs/issues/1540上有描述;

要修复它,你需要升级到最新的打字稿1.8。

请注意,当你运行tsc你正在使用全局打字稿(check tsc -v )。要升级全局打稿稿,运行npm i typescript -g

如果你想使用在package.json定义的package.json ,你需要通过"scripts"来执行它,也就是添加"build": "tsc" ,并用npm run build执行它。

我有同样的问题。 我正在运行TypeScript 1.8.11。 我害怕没有解决办法。 我认为这是一个真正的问题rxjs或angular2 rc 1。

我将rxjs降级到beta 2,并修复了这个问题。 不幸的是,angular度rc1取决于testing版6,所以做一个完整的npm安装失败。

Dan – 当我升级到Angular 2 rc1后,我将Observable添加到我的代码中,一连串的问题都试图成功运行。 对我来说固定的是增加

  "emitDecoratorMetadata": true, 

到我的tsconfig.json文件。 一旦我添加了该行,在IIS中使用npm start就可以正确显示。 我完整的tsconfig.json文件如下所示:

 {"compilerOptions": { "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "experimentalDecorators": true, "module": "commonjs", "moduleResolution": "node", "emitDecoratorMetadata": true, "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true }, "exclude": [ "node_modules", "typings/main", "typings/main.d.ts" ]} 

(抱歉格式化…已经晚了)。 希望这可以帮助。

在toPromise.d.ts

从“../../Observable”添加“import {Observable};”

 import { ToPromiseSignature } from '../../operator/toPromise'; import {Observable} from '../../Observable'; declare module '../../Observable' { interface Observable<T> { toPromise: ToPromiseSignature<T>; } } 

您可以对map.d.ts执行相同的操作

希望这可以帮助。

 import { Injectable } from '@angular/core'; import { Http, Response, Headers, RequestOptions} from '@angular/http'; import 'rxjs/Rx'; import {Observable} from 'rxjs/Observable'; import 'rxjs/add/operator/map'; return this._http.post(url, null, args).map(this.extractData) 

使函数extractData

试试这个,它会为你工作。 它正在为我工​​作。

我得到了这个工作在这里Ag电网angular2的组件。

我需要的types为Promise的types: tsd install es6-shim

然后在打字稿选项中,将下载的打字文件指定为要在tsconfig.json中编译的文件之一,即:

 { "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false, "outDir": "lib" }, "files": [ "typings/es6-shim/es6-shim.d.ts", // the typings file "app/boot.ts" // you application ] } 

安装es6-shim解决了我同样的问题:

 typings i es6-shim --ambient --save-dev 

这是testing版6中的一个突破性的变化,为了解决这个问题,您可以在内部引用内部打字文件。 不幸的是,这些在2.0.0-rc.0中已经被删除了,所以现在你必须依靠外部的types。

如果您刚刚升级到Angular2 rc1,请确保您使用的是新的@angular导入语句,而不是使用angular2:

 `import { Component } from 'angular2/core';` 

变,

 `import { Component } from '@angular/core';` 

我知道这似乎很简单,但它可能会导致这个问题。

为Visual Studio 2015findTypeScript的beta 2.0版本。这个版本在我的机器上解决了同样的问题。 但请记住,这是一个testing版。

如果您是从Angular2版本候选版本(即2.0.0-rc.1)升级到2.xx版本,则需要:

  1. 通过https://github.com/angular/quickstart/blob/master/package.json更新你的;package.json以获得最新的文件

  2. 使用https://github.com/angular/quickstart/blob/master/systemjs.config.js中的;文件更新您的systemjs.config.js文件以及时更新

  3. 将导入语句更改为:

    import {Observable} from 'rxjs'