alors que cela ressemble au même problème que Angular 2 beta.17: la propriété 'map' n'existe pas sur le type 'Observable <Response>'
ceci est une nouvelle version et ces solutions ne fonctionnent pas pour cette nouvelle version publiée
J'ai mis à jour à la dernière Angular 2 rc1 et je ne parviens pas à compiler les choses. J'ai eu des problèmes avec le fait de ne pas reconnaître 'Promise'. J'ai fini par installer es6-promise en tapant directement pour résoudre ce problème. J'ai essayé de mettre en place diverses déclarations d'importation mais pas de chance, je cours dans 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();
mais continuer à obtenir la propriété 'map' n'existe pas sur le type 'Observable'
mon fichier de colis est
"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"
}
avez-vous essayé avec cette importation? ça marche pour moi
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
Voici la solution de contournement. Jjokela et VahidN ont fait allusion à cela aussi avec leurs commentaires. Je l'ai trouvé en consultant le blog de Deborah Kurata ici . Elle décrit l'utilisation du modèle de projet Angular2 avec ASP.NET 4 et non le nouveau modèle ASP.NET 5 RC que j'utilise.
Pour résoudre ce problème, veuillez vous référer aux instructions trouvées à l’adresse suivante: https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
Ce correctif est destiné à être inclus dans la version TypeScript 2.0 pour Visual Studio. Jusqu'à ce que vous puissiez effectuer les étapes manuelles ci-dessous.
Pour VS 2015 (mise à jour 3):
Installez VS 2015 Update 3 Remplacez C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.js par le fichier présent dans https://raw.githubusercontent.com /Microsoft/TypeScript/Fix8518-U3/lib/typescriptServices.js . Tout d'abord, prenez une sauvegarde locale.
Pour VS 2015 (mise à jour 2):
Installez VS 2015 Update 2 Remplacez C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.js par le fichier présent dans https://raw.githubusercontent.com /Microsoft/TypeScript/Fix8518/lib/typescriptServices.js . Tout d'abord, prenez une sauvegarde locale.
Pour VS 2013:
Installez TypeScript 1.8.5 ( https://www.Microsoft.com/en-us/download/details.aspx?id=48739 ) Remplacez C:\Fichiers de programme (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.js avec le fichier https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js . Tout d'abord, prenez une sauvegarde locale.
J'avais le même problème. Il semble avoir résolu après avoir ajouté cette ligne à la classe AppComponent.
import 'rxjs/Rx';
Rien sauf
import { Observable } from 'rxjs/Rx';
Le problème est probablement lié à https://github.com/Microsoft/TypeScript/issues/7415 qui n'a pas encore vu de version complète de VS. Il est possible de construire les sources localement et d’utiliser VS Dev Mode .
Je rencontre le même problème après la mise à niveau vers Angular2 RC. Je reçois des erreurs Intellisense VS 2015 pour la propriété 'carte' n'existe pas sur le type 'Observable'.
J'utilise grunt-ts pour transpiler afin que cela n'affecte pas ma capacité à transpiler, mais il est agaçant de le voir dans l'éditeur comme des erreurs alors qu'elles n'étaient pas là auparavant.
Je crois que le problème vient du téléchargement de TypeScript pour Visual Studio. https://www.Microsoft.com/en-us/download/details.aspx?id=4859
Il est actuellement à la version 1.8.6 et, à mon avis, est le moteur de l'intellisense de Visual Studio et de la compilation TypeScript si vous le configurez de cette manière. Il faudra donc peut-être attendre une nouvelle version de TypeScript for Visual Studio.
dans toPromise.d.ts
ajoutez "import {Observable} from '../../Observable';"
import { ToPromiseSignature } from '../../operator/toPromise';
import {Observable} from '../../Observable';
declare module '../../Observable' {
interface Observable<T> {
toPromise: ToPromiseSignature<T>;
}
}
Vous pouvez faire la même chose pour map.d.ts
J'espère que cela t'aides.
Dan - J'ai eu toute une série de problèmes pour tenter de réussir une exécution dès que j'ai ajouté Observable dans mon code une fois la mise à niveau vers Angular 2 rc1 également. Ce qui a été résolu
"emitDecoratorMetadata": true,
dans mon fichier tsconfig.json. Une fois que j'ai ajouté cette ligne, il a rendu correctement à la fois in IIS et l'utilisation de npm start. Mon fichier tsconfig.json complet est le suivant:
{"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" ]}
(désolé pour le formatage ... il se fait tard). J'espère que cela t'aides.
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)
Make Function extractData
Essayez celui-ci. Il travaillera pour vous. Ça marche pour moi.
J'ai le même problème. J'utilise TypeScript 1.8.11. Je n'ai pas de solution, j'ai peur. Je pense que c’est un problème réel avec soit rxjs ou angular 2 rc 1.
J'ai rétrogradé rxjs en beta 2 et le problème a été résolu. Malheureusement, angular rc1 dépend de la version 6 bêta; par conséquent, l’installation complète de npm échoue.
Vos importations sont bonnes. La cause première du problème est décrite sur https://github.com/ReactiveX/rxjs/issues/154
Pour résoudre ce problème, vous devez effectuer une mise à niveau vers la dernière version de TypeScript 1.8.
Veuillez noter que lorsque vous exécutez tsc
, vous utilisez TypeScript global (cochez tsc -v
) Pour mettre à jour TypeScript global, exécutez npm i TypeScript -g
.
Si vous voulez utiliser TypeScript défini dans package.json
, vous devez l'exécuter via "scripts"
, c'est-à-dire ajouter "build": "tsc"
et l'exécuter avec npm run build
.
je travaille pour ag-grid angular 2 qui est ici .
j'avais besoin de la typographie pour Promise que vous obtenez avec: tsd install es6-shim
ensuite, dans vos options TypeScript, spécifiez le fichier de typage téléchargé comme l'un des fichiers à compiler dans tsconfig.json, c'est-à-dire:
{
"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
]
}
Recherchez la version bêta 2.0.0 de TypeScript pour Visual Studio 2015. Cette version a résolu le même problème sur ma machine. Mais rappelez-vous, c'est une version bêta.
Installation des typings pour es6-shim
résolu le même problème pour moi:
typings i es6-shim --ambient --save-dev
C'était un changement de bêta 6 et pour le contourner, vous pouvez inclure une référence aux fichiers de typage internes dans angular. Malheureusement, ceux-ci ayant été supprimés dans la version 2.0.0-rc.0, vous devez maintenant vous fier aux typages externes pour la même chose.
Si vous effectuez une mise à niveau d'une version candidate à la publication pour Angular2 (c'est-à-dire 2.0.0-rc.1) vers une version 2.x.x,, vous souhaiterez:
Mettez à jour votre package.json pour qu'il soit à jour avec le fichier à l'adresse https://github.com/angular/quickstart/blob/master/package. json
Mettez à jour votre fichier systemjs.config.js afin qu'il soit à jour avec le fichier à l'adresse https://github.com/angular/quickstart/blob/master /systemjs.config.js
Remplacez la déclaration d'importation par:
import {Observable} from 'rxjs'
si vous venez de passer à Angular2 rc1, assurez-vous d'utiliser les nouvelles instructions d'importation @angular plutôt que angular2:
`import { Component } from 'angular2/core';`
devient,
`import { Component } from '@angular/core';`
Je sais que cela semble simple, mais cela peut causer ce problème.