これは Angular 2 beta.17と同じ問題のように見えますが、プロパティ 'map'はタイプ 'Observable <Response>'に存在しません
これは新しいバージョンであり、これらのソリューションはこの新しいリリースされたバージョンでは機能しません
最新のAngular 2 rc1に更新しましたが、コンパイルできません。 「約束」を認識しないという問題がありました。その問題を解決するためにes6-promiseタイピングを直接インストールすることになりました。さまざまな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();
しかし、プロパティ「map」は「Observable」タイプに存在しません
私のパッケージファイルは
"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のブログ投稿 こちら を見て見つけました。彼女は、私が使用している新しいASP.NET 5 RCテンプレートではなく、Angular2をASP.NET 4プロジェクトテンプレートで使用することを概説しています。
修正するには、 https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507 にあるこれらの指示を参照してください。
この修正は、Visual StudioのTypeScript 2.0リリースに含まれることを目的としています。以下の手動手順を実行できるようになるまで。
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 。ただし、最初にローカルバックアップを取得します。
VS 2015(更新2)の場合:
VS 2015 Update 2のインストールC:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.jsを https://raw.githubusercontent.comのファイルに置き換えます/Microsoft/TypeScript/Fix8518/lib/typescriptServices.js 。ただし、最初にローカルバックアップを取得します。
VS 2013の場合:
TypeScript 1.8.5をインストールします( https://www.Microsoft.com/en-us/download/details.aspx?id=48739 )C:\ Program Files(x86)\ Microsoft Visual Studioを置き換えます https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js にファイルがある12.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.jsただし、最初にローカルバックアップを取得します。
私は同じ問題を抱えていました。この行をAppComponentクラスに追加すると解決したようです。
import 'rxjs/Rx';
以外は何もない
import { Observable } from 'rxjs/Rx';
この問題は、 https://github.com/Microsoft/TypeScript/issues/7415 に関連している可能性が最も高く、VSの完全なリリースはまだ見られていません。ソースをローカルでビルドし、 VS Dev Mode を使用することができます。
Angular2 RCにアップグレードした後、同じ問題が発生しています。プロパティ 'map'のVS 2015 Intellisenseエラーは、タイプ 'Observable'に存在しません。
私はgrunt-tsを使用してトランスパイルを実行しているので、トランスパイルする能力には影響しませんが、エディターにそれが存在していなかったときにエラーとして表示するのは面倒です。
問題は、Visual Studioのダウンロード用のTypeScriptにあると思います。 https://www.Microsoft.com/en-us/download/details.aspx?id=4859
現在はバージョン1.8.6であり、Visual Studioのインテリセンスを駆動し、TypeScriptコンパイルでのビルドがそれを構成する方法であると信じています。そのため、Visual Studio用のTypeScriptの新しいバージョンが削除されるのを待つ必要があるかもしれません。
toPromise.d.tsで
追加 "'../../Observable'から{Observable}をインポート;"
import { ToPromiseSignature } from '../../operator/toPromise';
import {Observable} from '../../Observable';
declare module '../../Observable' {
interface Observable<T> {
toPromise: ToPromiseSignature<T>;
}
}
Map.d.tsでも同じことができます
お役に立てれば。
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" ]}
(フォーマットについてはごめんなさい...遅れています)。お役に立てれば。
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を作成する
これを試してください。それはあなたのために動作します。それは私のために働いています。
私は同じ問題を抱えています。 TypeScript 1.8.11を実行しています。解決策がありません。これは、rxjsまたはangular 2 rc 1の真の問題だと思います。
Rxjsをベータ2にダウングレードし、その問題を修正しました。残念ながらangular rc1はベータ6に依存しているため、npmの完全インストールは失敗します。
インポートは良好です。問題の根本原因は https://github.com/ReactiveX/rxjs/issues/154 で説明されています
修正するには、最新のTypeScript 1.8にアップグレードする必要があります。
tsc
を実行するときは、グローバルTypeScriptを使用していることに注意してください(tsc -v
を確認)。グローバルTypeScriptをアップグレードするには、npm i TypeScript -g
を実行します。
package.json
で定義されたTypeScriptを使用する場合は、"scripts"
を介して実行する必要があります。つまり、"build": "tsc"
を追加し、npm run build
で実行する必要があります。
ag-grid angular 2のコンポーネントである here で動作するようになりました。
私はあなたが得るPromiseのタイピングが必要でした:tsd install es6-shim
次に、TypeScriptオプションで、tsconfig.jsonでコンパイルするファイルの1つとしてダウンロードしたタイピングファイルを指定します。
{
"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
]
}
Visual Studio 2015のTypeScriptのベータリリース2.0.0を見つけてください。このリリースは、私のマシンで同じ問題を解決しました。ただし、これはベータ版であることを忘れないでください。
es6-shim
のタイピングをインストールすると、同じ問題が解決されました。
typings i es6-shim --ambient --save-dev
これは ベータ6の重大な変更 であり、これを回避するには、angular内の内部タイピングファイルへの参照を含めることができます。残念ながら、これらは2.0.0-rc.0で削除されたため、同じことを外部の型指定に依存する必要があります。
Angular2リリース候補(つまり2.0.0-rc.1)から2.xxリリースにアップグレードする場合、 :
package.jsonを更新して、 https://github.com/angular/quickstart/にあるファイルを使用しますblob/master/package.json
systemjs.config.jsファイルを https://github.com/angularにあるファイルで最新の状態に更新します/quickstart/blob/master/systemjs.config.js
Importステートメントを次のように変更します。
import {Observable} from 'rxjs'
angular2 rc1にアップグレードしたばかりの場合は、angular2ではなく、新しい@angular importステートメントを使用していることを確認してください。
`import { Component } from 'angular2/core';`
になる、
`import { Component } from '@angular/core';`
単純に思えますが、この問題が発生する可能性があります。