from example typescript angular rxjs

typescript - example - Angular 2 2.0.0-rc.1 La propiedad ''map'' no existe en el tipo ''Observable<Response>'' no es lo mismo que el informe de problema



rxjs pipe (16)

mientras que esto parece el mismo problema que Angular 2 beta.17: la propiedad ''map'' no existe en el tipo ''Observable <Response>''

esta es una nueva versión y esas soluciones no funcionan para esta nueva versión lanzada

He actualizado al último Angular 2 rc1 y no puedo hacer que las cosas se compilen. Tuve problemas al no reconocer ''Promesa''. Terminé instalando es6-promise escribiendo directamente para resolver ese problema. He intentado poner varias declaraciones de importación pero no tuve suerte. Estoy corriendo en 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();

pero continúe obteniendo que la propiedad ''mapa'' no existe en el tipo ''Observable''

mi archivo de paquete es

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


Aquí está la solución. jjokela y VahidN lo insinuaron también con sus comentarios. Lo encontré mirando la publicación de blog de Deborah Kurata here . Ella describe el uso de Angular2 con la plantilla de proyecto ASP.NET 4, no la nueva plantilla ASP.NET 5 RC que estoy usando.

Para solucionarlo, consulte estas instrucciones que se encuentran en https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507

Esta corrección está destinada a incluirse con la versión de Tipos de escritura 2.0 para Visual Studio. Hasta que pueda realizar los pasos manuales a continuación.

Para VS 2015 (Actualización 3):

Instale VS 2015 Update 3 Reemplace C: / Archivos de programa (x86) / Microsoft Visual Studio 14.0 / Common7 / IDE / CommonExtensions / Microsoft / TypeScript / typescriptServices.js con el archivo en https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-U3/lib/typescriptServices.js . Sin embargo, primero tome una copia de seguridad local.

Para VS 2015 (Actualización 2):

Instale VS 2015 Actualización 2 Reemplace C: / Archivos de programa (x86) / Microsoft Visual Studio 14.0 / Common7 / IDE / CommonExtensions / Microsoft / TypeScript / typescriptServices.js con el archivo en https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518/lib/typescriptServices.js . Sin embargo, primero tome una copia de seguridad local.

Para VS 2013:

Instale TypeScript 1.8.5 ( https://www.microsoft.com/en-us/download/details.aspx?id=48739 ) Reemplace C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 / Common7 / IDE / CommonExtensions / Microsoft / TypeScript / typescriptServices.js con el archivo en https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518-Dev12/lib/typescriptServices.js . Sin embargo, primero tome una copia de seguridad local.


Busque la versión beta 2.0.0 de TypeScript para Visual Studio 2015. Esta versión resolvió el mismo problema en mi máquina. Pero recuerda, es una beta.


Dan: tuve una serie de problemas al tratar de obtener una ejecución exitosa tan pronto como agregué Observable en mi código una vez que actualicé a Angular 2 rc1 también. Lo que me solucionó fue agregar

"emitDecoratorMetadata": true,

a mi archivo tsconfig.json. Una vez que agregué esa línea, se procesó correctamente tanto en IIS como usando npm start. Mi archivo completo tsconfig.json es el siguiente:

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

(perdón por el formato ... se está haciendo tarde). Espero que esto ayude.



Estoy experimentando el mismo problema después de actualizar a Angular2 RC. Obtengo errores VS 2015 Intellisense para la propiedad ''map'' no existe en el tipo ''Observable''.

Utilizo grunt-ts para hacer mi traspiración, por lo que no afecta mi capacidad de transpilar, pero es molesto verlo en el editor como errores cuando no estaban allí antes.

Creo que el problema es con la descarga de mecanografiado para Visual Studio. https://www.microsoft.com/en-us/download/details.aspx?id=48593

Actualmente se encuentra en la versión 1.8.6 y creo que impulsa el intellisense de Visual Studio y también la compilación en compilación de mecanografía si es así como lo está configurando. Por lo tanto, es posible que tengamos que esperar a que caiga una nueva versión de Typecript para Visual Studio.


Instalar los tipings para es6-shim resolvió el mismo problema para mí:

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

Fue un cambio radical en la versión beta 6 y, para evitarlo, podría incluir una referencia a los archivos de tipificación internos dentro de angular. Desafortunadamente, estos se han eliminado en 2.0.0-rc.0, por lo que debe confiar en los tipings externos para lo mismo ahora.


Nada excepto

import { Observable } from ''rxjs/Rx'';


Tengo el mismo problema. Estoy ejecutando TypeScript 1.8.11. No tengo solución, me temo. Creo que es un problema genuino con rxjs o angular 2 rc 1.

Bajé el rxjs a beta 2 y solucioné ese problema. Desafortunadamente, angular rc1 depende de beta 6, por lo que falla la instalación completa de npm.


Tengo esto funcionando para el componente ag-grid angular 2 que está here .

necesitaba los tipings para Promise que obtienes con: tsd install es6-shim

luego, en las opciones de mecanografiado, especifique el archivo de tipificación descargado como uno de los archivos para compilar en tsconfig.json, es decir:

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


Tus importaciones son buenas. La causa raíz del problema se describe en https://github.com/ReactiveX/rxjs/issues/1540

Para solucionarlo, debe actualizar al último mecanografiado 1.8.

Tenga en cuenta que cuando ejecuta tsc está utilizando el mecanografiado global (marque tsc -v ) Para actualizar el mecanografiado global, ejecute npm i typescript -g .

Si desea utilizar el mecanografiado definido en package.json , debe ejecutarlo mediante "scripts" , es decir, agregar "build": "tsc" y ejecutarlo con npm run build .


Yo estaba teniendo el mismo problema. Parece haberse resuelto después de agregar esta línea a la clase AppComponent.

import ''rxjs/Rx'';


en toPromise.d.ts

agregue "import {Observable} de ''../../Observable'';"

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

Puedes hacer lo mismo para map.d.ts

Espero que esto ayude.


intentaste con esta importación? esto funciona para mi

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


si acaba de actualizar a Angular2 rc1, asegúrese de utilizar las nuevas declaraciones de importación @angular, en lugar de la angular2:

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

se convierte,

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

Sé que parece simple, pero puede causar este problema.



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)

Hacer la función extractData

Pruebe este. Funcionará para usted. Me esta funcionando.