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版本,则需要:
-
通过https://github.com/angular/quickstart/blob/master/package.json更新你的;package.json以获得最新的文件
-
使用https://github.com/angular/quickstart/blob/master/systemjs.config.js中的;文件更新您的systemjs.config.js文件以及时更新
-
将导入语句更改为:
import {Observable} from 'rxjs'
- ngSubmit以Angular 2forms刷新页面
- 何时在TypeScript / Angular2中使用接口和模型
- 如何创build一个类似于Angular 2中的http的静态数据的Observable?
- rxjs / Subject.d.ts错误:Class'Subject <T>'错误地扩展了基类'Observable <T>'
- TypeScript注释的语法在哪里logging?
- 使用routerLink的Angular 2unit testing组件
- nodejs需要在TypeScript文件中
- 我在哪里可以find在Visual Studio中安装的TypeScript版本?
- TypeScript或JavaScripttypes转换