Angular 2 2.0.0-rc.1 La propriété ‘map’ n’existe pas sur le type ‘Observable ‘ n’est pas la même chose que le rapport d’émission

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 ‘

c’est une nouvelle version et ces solutions ne fonctionnent pas pour cette nouvelle version

J’ai mis à jour le dernier Angular 2 rc1 et n’arrive pas à comstackr les choses. J’ai eu des problèmes avec ne pas reconnaître “Promise” J’ai fini par installer directement la frappe es6-promise 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 le studio visuel 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 paquet est

 "dependencies": { "@angular/common": "2.0.0-rc.1", "@angular/comstackr": "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", "jasminee-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-jasminee": "^0.3.8", "karma-jasminee-html-reporter": "^0.2.0", "http-server": "^0.9.0" } 

as-tu 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 y ont également fait allusion avec leurs commentaires. Je l’ai trouvé en regardant le blog de Deborah Kurata ici . Elle décrit l’utilisation d’Angular2 avec le modèle de projet ASP.NET 4 et non le nouveau modèle ASP.NET 5 RC que j’utilise.

Pour réparer, veuillez vous reporter aux instructions disponibles à l’ adresse https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507.

Ce correctif est destiné à être inclus dans la version de Typescript 2.0 pour Visual Studio. Jusqu’à ce que vous puissiez effectuer les étapes manuelles ci-dessous.

Pour VS 2015 (Update 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 https://raw.githubusercontent.com/Microsoft/TypeScript /Fix8518-U3/lib/typescriptServices.js . Commencez par effectuer 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 https://raw.githubusercontent.com/Microsoft/TypeScript /Fix8518/lib/typescriptServices.js . Commencez par effectuer une sauvegarde locale.

Pour VS 2013:

Installez TypeScript 1.8.5 ( https://www.microsoft.com/en-us/download/details.aspx?id=48739 ) Remplacez C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js avec le fichier dans https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js . Commencez par effectuer 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 le mode VS Dev .

Je rencontre le même problème après la mise à niveau vers Angular2 RC. J’obtiens des erreurs VS 2015 Intellisense pour la propriété ‘map’ n’existe pas sur le type ‘Observable’.

J’utilise grunt-ts pour faire mon transpiling, cela n’affecte donc pas ma capacité à transstackr, mais il est ennuyeux de le voir dans l’éditeur sous forme d’erreurs quand elles n’étaient pas présentes auparavant.

Je crois que le problème est lié au téléchargement de Typescript for Visual Studio. https://www.microsoft.com/en-us/download/details.aspx?id=48593

Il est actuellement à la version 1.8.6 et je pense qu’il pilote l’intellisense de Visual Studio et aussi la compilation de type typescripte si c’est la façon dont vous la configurez. Nous devrons donc simplement attendre qu’une nouvelle version de Typescript pour Visual Studio soit disponible.

Dan – J’ai eu une série de problèmes en essayant de réussir une exécution dès que j’ai ajouté Observable dans mon code une fois que je suis passé à Angular 2 rc1. Ce qui a corrigé pour moi ajoutait

  "emitDecoratorMetadata": true, 

à mon fichier tsconfig.json. Une fois que j’ai ajouté cette ligne, elle est restituée correctement dans IIS et avec npm start. Mon fichier tsconfig.json complet est le suivant:

 {"comstackrOptions": { "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.

dans toPromise.d.ts

append “import {Observable} à partir de” ../../Observable “;”

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

Vous pouvez faire la même chose pour map.d.ts

J’espère que cela t’aides.

Vos importations sont bonnes. La cause principale du problème est décrite sur https://github.com/ReactiveX/rxjs/issues/1540

Pour y remédier, vous devez effectuer la mise à niveau vers la dernière version typescripte 1.8.

Veuillez noter que lorsque vous exécutez tsc vous utilisez le typecript global (cochez tsc -v ).

Si vous voulez utiliser typecript défini dans package.json , vous devez l’exécuter via "scripts" , c’est-à-dire append "build": "tsc" et l’exécuter avec npm run build .

J’ai le même problème. J’exécute TypeScript 1.8.11. Je n’ai aucune solution, j’en ai peur. Je pense que c’est un véritable problème avec soit RXJS ou angular 2 RC 1.

J’ai rétrogradé rxjs en bêta 2 et le problème a été résolu. Malheureusement, angular rc1 dépend de la version bêta 6, si bien qu’une installation complète de npm échoue.

 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 fonctionnera pour vous. Ça marche pour moi.

J’ai eu ce travail pour le composant angular 2 de grid ag- qui est ici .

J’avais besoin des caractères pour Promise que vous obtenez avec: tsd install es6-shim

ensuite, dans vos options typescriptes, spécifiez le fichier de typage téléchargé comme l’un des fichiers à comstackr dans tsconfig.json, c’est-à-dire:

 { "comstackrOptions": { "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 ] } 

L’installation des caractères pour es6-shim résolu le même problème pour moi:

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

Il s’agissait d’un changement radical dans la version bêta 6 et pour le contourner, vous pourriez inclure une référence aux fichiers de typage internes à l’intérieur de l’angle. Malheureusement, ceux-ci ont été supprimés dans 2.0.0-rc.0, vous devez donc vous fier aux typages externes pour la même chose maintenant.

Si vous venez de mettre à niveau Angular2 rc1, assurez-vous d’utiliser les nouvelles instructions d’importation @angular, plutôt que l’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.

Recherchez la version bêta 2.0.0 de TypeScript for 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.

Si vous passez d’une version candidate à la version Angular2 (par exemple, 2.0.0-rc.1) à une version 2.xx, vous souhaiterez:

  1. Mettez à jour votre package.json pour être à jour avec le fichier à l’ adresse https://github.com/angular/quickstart/blob/master/package.json

  2. Mettez à jour votre fichier systemjs.config.js pour qu’il soit à jour avec le fichier à l’ adresse https://github.com/angular/quickstart/blob/master/systemjs.config.js

  3. Modifier l’instruction d’importation à:

    import {Observable} from 'rxjs'