web-dev-qa-db-fra.com

Angular 2 2.0.0-rc.1 La propriété 'carte' n'existe pas sur le type 'Observable <Réponse>' n'est pas identique au 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 <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"
}
61
Dan Soltesz

avez-vous essayé avec cette importation? ça marche pour moi

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

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.

59
Eric Weiss

J'avais le même problème. Il semble avoir résolu après avoir ajouté cette ligne à la classe AppComponent.

import 'rxjs/Rx'; 
14
NeshDev

Rien sauf

import { Observable } from 'rxjs/Rx';
6
Varun Kumar

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 .

4
David Driscoll

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.

3
Eric Weiss

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.

2
Huy Nguyen

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.

2
iTrout
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.

1
Hasnain Bukhari

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.

1
Simon Vane

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.

1
tomaszbak

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
  ]
}
0
Niall Crosby

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.

0
ravi punjwani

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.

0
Gareth Flowers

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:

  1. Mettez à jour votre package.json pour qu'il soit à jour avec le fichier à l'adresse https://github.com/angular/quickstart/blob/master/package. json

  2. 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

  3. Remplacez la déclaration d'importation par:

    import {Observable} from 'rxjs'

0
The Aelfinn

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.

0
Ryan Park