Angular 2 2.0.0-rc.1 La ‘mappa’ di proprietà non esiste sul tipo ‘Observable ‘ non uguale al report di emissione

mentre questo sembra lo stesso problema di Angular 2 beta.17: Proprietà ‘mappa’ non esiste sul tipo ‘Observable ‘

questa è una nuova versione e quelle soluzioni non funzionano per questa nuova versione rilasciata

Ho aggiornato l’ultima versione di Angular 2 rc1 e non riesco a compilare le cose. Ho avuto problemi con il mancato riconoscimento di “Promise”. Ho finito con l’installare es6-promise digitando direttamente per risolvere quel problema. Ho provato a mettere in varie dichiarazioni di importazione ma senza fortuna. Sono in esecuzione nello studio visivo 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(); 

ma continua a ottenere che la ‘mappa’ della proprietà non esiste sul tipo ‘Osservabile’

il mio file pacchetto è

 "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" } 

hai provato con questa importazione? per me funziona

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

Ecco la soluzione. jjokela e VahidN lo hanno accennato anche con i loro commenti. L’ho trovato guardando il post sul blog di Deborah Kurata qui . Descrive utilizzando Angular2 con il modello di progetto ASP.NET 4 e non con il nuovo modello di RC di ASP.NET 5 che sto utilizzando.

Per correggere fai riferimento a queste istruzioni disponibili su https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507

Questa correzione è destinata per essere inclusa con la versione di Typescript 2.0 per Visual Studio. Fino a quando non è ansible eseguire la procedura manuale di seguito.

Per VS 2015 (aggiornamento 3):

Installazione di VS 2015 Aggiornamento 3 Sostituisci C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js con il file in https://raw.githubusercontent.com/Microsoft/TypeScript /Fix8518-U3/lib/typescriptServices.js . Per prima cosa prendi un backup locale.

Per VS 2015 (aggiornamento 2):

Installa VS 2015 Update 2 Sostituisci C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js con il file in https://raw.githubusercontent.com/Microsoft/TypeScript /Fix8518/lib/typescriptServices.js . Per prima cosa prendi un backup locale.

Per VS 2013:

Installa TypeScript 1.8.5 ( https://www.microsoft.com/en-us/download/details.aspx?id=48739 ) Sostituisci C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ typescriptServices.js con il file in https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js . Per prima cosa prendi un backup locale.

Stavo avendo lo stesso problema. Sembra che sia stato risolto dopo aver aggiunto questa riga alla class AppComponent.

 import 'rxjs/Rx'; 

Niente tranne

 import { Observable } from 'rxjs/Rx'; 

Il problema è probabilmente correlato a https://github.com/Microsoft/TypeScript/issues/7415 che non ha ancora visto una versione completa di VS. È ansible creare localmente le sorgenti e utilizzare la modalità VS Dev .

Sto riscontrando lo stesso problema dopo l’aggiornamento a Angular2 RC. Ottengo gli errori Intellisense VS 2015 per la proprietà ‘mappa’ non esiste sul tipo ‘Osservabile’.

Uso grunt-ts per eseguire il transpiling in modo che non influenzi la mia capacità di traspolare ma è fastidioso vederlo nell’editor come errori quando non c’erano prima.

Credo che il problema sia con il download di Typescript per Visual Studio. https://www.microsoft.com/en-us/download/details.aspx?id=48593

È attualmente alla versione 1.8.6 e credo che guidi l’intellisense di Visual Studio e anche la compilazione della compilazione typescript, se è così che si configura. Quindi dovremmo semplicemente aspettare che venga rilasciata una nuova versione di Typescript per Visual Studio.

Dan – Ho avuto una serie di problemi cercando di ottenere una corsa di successo non appena ho aggiunto Observable al mio codice una volta aggiornato anche ad Angular 2 rc1. Ciò che ha risolto per me è stato l’aggiunta

  "emitDecoratorMetadata": true, 

al mio file tsconfig.json. Una volta aggiunta questa riga, ha eseguito correttamente il rendering sia in IIS che utilizzando npm start. Il mio file tsconfig.json completo è il seguente:

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

(mi dispiace per la formattazione … si sta facendo tardi). Spero che questo ti aiuti.

in toPromise.d.ts

aggiungi “import {Observable} da ‘../../Observable’;”

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

Puoi fare lo stesso per map.d.ts

Spero che questo ti aiuti.

Le tue importazioni sono buone. La causa principale del problema è descritta su https://github.com/ReactiveX/rxjs/issues/1540

Per risolvere il problema, è necessario eseguire l’aggiornamento all’ultimo typescript 1.8.

Si noti che quando si esegue tsc si utilizza typescript globale (selezionare tsc -v ) Per aggiornare typescript globale, eseguire npm i typescript -g .

Se si desidera utilizzare il typescript definito in package.json , è necessario eseguirlo tramite "scripts" , ovvero aggiungere "build": "tsc" ed eseguirlo con npm run build .

Sto avendo lo stesso problema. Sto usando TypeScript 1.8.11. Non ho alcuna soluzione, ho paura. Penso che sia un vero problema con rxjs o angular 2 rc 1.

Ho eseguito il downgrade di rxjs alla beta 2 e ho risolto il problema. Sfortunatamente il rc1 angular dipende dalla beta 6, quindi l’installazione di npm non riesce.

 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) 

Crea Funzione extractData

Prova questo. Funzionerà per te. Funziona per me.

Ho ottenuto questo funzionamento per il componente ang angular 2 che è qui .

mi servivano le tipizzazioni per Promise con cui si ottiene: tsd install es6-shim

quindi nelle tue opzioni di typescript, specifica il file di tipizzazione scaricato come uno dei file da compilare in tsconfig.json, ovvero:

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

L’installazione delle tipizzazioni per es6-shim risolto lo stesso problema per me:

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

È stata una svolta nella beta 6 e per aggirare il problema si potrebbe includere un riferimento ai file di tipizzazione interni all’interno angular. Sfortunatamente questi sono stati rimossi in 2.0.0-rc.0 quindi è necessario fare affidamento sulle tipizzazioni esterne per la stessa cosa ora.

se hai appena effettuato l’aggiornamento a Angular2 rc1, assicurati di utilizzare le nuove istruzioni di importazione @angular, anziché angular2:

 `import { Component } from 'angular2/core';` 

diventa,

 `import { Component } from '@angular/core';` 

So che sembra semplice, ma può causare questo problema.

Trova beta versione 2.0.0 di TypeScript per Visual Studio 2015. Questa versione ha risolto lo stesso problema sul mio computer. Ma ricorda, è una beta.

Se si esegue l’aggiornamento da un release-candidate Angular2 (ad esempio 2.0.0-rc.1) a una versione 2.xx, è necessario:

  1. Aggiorna il tuo pacchetto.json per essere aggiornato con il file all’indirizzo https://github.com/angular/quickstart/blob/master/package.json

  2. Aggiorna il tuo file systemjs.config.js per essere aggiornato con il file all’indirizzo https://github.com/angular/quickstart/blob/master/systemjs.config.js

  3. Cambia la dichiarazione di importazione in:

    import {Observable} from 'rxjs'