Acabo de actualizar de Angular 2 beta16 a beta17 , que a su vez requiere rxjs 5.0.0-beta.6. ( Registro de cambios aquí: https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta17-2016-04-28 ) En beta16 todo funcionaba bien con respecto a la funcionalidad Observable / mapa. Los siguientes errores aparecieron después de que actualicé y ocurren cuando el mecanografiado intenta transpilar:
- La propiedad 'mapa' no existe en el tipo 'Observable' (en cualquier lugar donde haya usado el mapa con un observable)
- c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): error TS2435: Los módulos ambientales no pueden anidarse en otros módulos o espacios de nombres.
- c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): error TS2436: La declaración del módulo ambiental no puede especificar un nombre de módulo relativo.
He visto esta pregunta / respuesta pero no resuelve el problema: errores observables con Angular2 beta.12 y RxJs 5 beta.3
Mi appBoot.ts tiene este aspecto (ya estoy haciendo referencia a rxjs / map):
///<reference path="./../node_modules/angular2/typings/browser.d.ts"/>
import {bootstrap} from "angular2/platform/browser";
import {ROUTER_PROVIDERS} from 'angular2/router';
import {HTTP_PROVIDERS} from 'angular2/http';
[stuff]
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import {enableProdMode} from 'angular2/core';
import { Title } from 'angular2/platform/browser';
//enableProdMode();
bootstrap(AppDesktopComponent, [
ROUTER_PROVIDERS,
HTTP_PROVIDERS,
Title
]);
¿Alguien tiene alguna idea de lo que se está volviendo loco?
typescript
angular
rxjs
brando
fuente
fuente
Respuestas:
Necesita importar el
map
operador:fuente
import { map } from 'rxjs/operators'
, pero otra respuesta tiene más detalles.Actualicé mi complemento gulp-typecript a la última versión (2.13.0) y ahora se compila sin problemas.
ACTUALIZACIÓN 1: anteriormente estaba usando gulp-typescript versión 2.12.0
ACTUALIZACIÓN 2: Si está actualizando a Angular 2.0.0-rc.1, debe hacer lo siguiente en su archivo appBoot.ts:
Lo importante es la referencia a es6-shim / index.d.ts
Esto supone que ha instalado los tipos de es6-shim como se muestra aquí:
Más información sobre la instalación de tipings desde Angular aquí: https://angular.io/docs/ts/latest/guide/typescript-configuration.html#!#typings
fuente
map
mensaje de error para incluir una nota para usuarios con problemas similares. Muchas gracias :)import 'rxjs/Rx';
// Carga todas las funcionesRxjs 5.5 “La propiedad 'mapa' no existe en el tipo Observable.
El problema estaba relacionado con el hecho de que necesita agregar tubería alrededor de todos los operadores.
Cambia esto,
a esto
Y
Importar mapa como este,
Resolverá tus problemas.
fuente
En mi caso, no sería suficiente incluir solo el mapa y la promesa:
Resolví este problema importando varios componentes de rxjs como recomienda la documentación oficial :
1) Importar declaraciones en un archivo app / rxjs-operator.ts:
2) Importa el operador rxjs en tu servicio:
fuente
Si ve este error en VS2015, hay un problema de github y solución mencionada aquí:
https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
Esto me ayudó a resolver el
property map does not exist on observable
problema. Además, asegúrese de tener la versión mecanografiada anterior a 1.8.2fuente
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\typescriptServices.js
con typecriptService funcionó para VS 15. ( reiniciar vs después de reemplazar el archivo )LA RESPUESTA FINAL PARA LOS QUE UTILIZAN ANGULAR 6:
Agregue el siguiente comando en su archivo * .service.ts "
Estoy usando Windows 10;
angular6 con mecanografiado V 2.3.4.0
fuente
Y
npm install rxjs@6 rxjs-compat@6 --save
trabajó para mi
fuente
En angular 2x
En example.component.ts
En example.component.html
En Angular 5x o Angular 6x:
En example.component.ts
En example.component.html
fuente
ACTUALIZACIÓN 29 de septiembre de 2016 para Angular 2.0 Final y VS 2015
La solución ya no es necesaria, para solucionarlo solo necesita instalar TypeScript versión 2.0.3 .
Arreglo tomado de la edición en este comentario de problema de github .
fuente
Según tengo entendido, se debe a la
rxjs
última actualización. Han cambiado algunos operadores y sintaxis. A partir de entonces, deberíamos importarrx
operadores como esteimport { map } from "rxjs/operators";
en lugar de esto
Y necesitamos agregar tubería alrededor de todos los operadores como este
this.myObservable().pipe(map(data => {}))
La fuente está aquí
fuente
Como Justin Scofield ha sugerido en su respuesta, para el último lanzamiento de Angular 5 y para Angular 6, como el 1 de junio de 2018, simplemente
import 'rxjs/add/operator/map';
no es suficiente para eliminar el error TS:[ts] Property 'map' does not exist on type 'Observable<Object>'.
Es necesario ejecutar el siguiente comando para instalar las dependencias requeridas: ¡
npm install rxjs@6 rxjs-compat@6 --save
después de lo cualmap
se resuelve el error de dependencia de importación!fuente
Estaba enfrentando el error similar. Se resolvió cuando hice estas tres cosas:
Actualice a los últimos rxjs:
Importar mapa y promesa:
Se agregó una nueva declaración de importación:
fuente
Parece que el último RxJS requiere el mecanografiado 1.8, por lo que el mecanografiado 1.7 informa el error anterior.
Resolví este problema actualizando a la última versión mecanografiada.
fuente
tsc
comando, compruebetsc -v
;-) Usar "scripts" es una idea aún mejor, consulte stackoverflow.com/a/37034227/478584Aparecerán mensajes de error similares al pasar de la versión 5 a la 6. Aquí hay una respuesta para el cambio a rxjs-6.
Importe los operadores individuales, luego use en
pipe
lugar de encadenar.fuente
Si está utilizando angular4, utilice el siguiente importación. deberia de funcionar .
importar 'rxjs / add / operator / map';
Si está usando angular5 / 6, use el mapa con tubería e importe debajo de uno
importar {mapa} desde "rxjs / operadores";
fuente
la propiedad 'mapa' no existe en el tipo 'respuesta observable' angular 6
Solución: actualice CLI angular y versión principal
fuente