angular - example - rxjs pipe
Angular: "no tiene ningĂșn miembro exportado ''Observable''" (14)
Actualice la versión angular-in-memory-web-api . La versión predeterminada de angular-in-memory-web-api instalada durante el tutorial angular-tour-of-heroes era 0.4. Funcionó como un encanto en mi caso. (Usando Angular 7 con RxJS 6)
npm i [email protected]
Código mecanografiado:
import { Injectable } from ''@angular/core'';
import { Observable } from ''rxjs/Observable'';
import { of } from ''rxjs/observable/of'';
import { Hero } from ''./hero'';
import { HEROES } from ''./mock-heroes'';
@Injectable({
providedIn: ''root''
})
export class HeroService {
constructor() { }
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
}
información de error:
error TS2307: No se puede encontrar el módulo ''rxjs-compat / Observable''. node_modules / rxjs / observable / of.d.ts (1,15): error TS2307: No se puede encontrar el módulo ''rxjs-compat / observable / of''. src / app / hero.service.ts (2,10): error TS2305: El módulo ''"F: / angular-tour-of-heroes / node_modules / rxjs / Observable"'' no tiene ningún miembro exportado ''Observable''. src / app / hero.service.ts (15,12): error TS2304: No se puede encontrar el nombre ''de''.
archivo
package.json
con versión angular:
Aparentemente (como señala en el registro de errores), después de actualizar a Angular 6.0.0 rxjs-compat falta.
Ejecute
npm install rxjs-compat --save
to install.
Debería arreglarlo.
El componente de
angular-split
no es compatible con Angular 6, por lo que para que sea compatible con la instalación de Angular 6 después de la dependencia en su aplicación
Para que esto funcione hasta que se actualice use:
"dependencies": {
"angular-split": "1.0.0-rc.3",
"rxjs": "^6.2.2",
"rxjs-compat": "^6.2.2",
}
En mi caso, este error estaba ocurriendo porque tenía una versión anterior de ng cli en mi computadora.
El problema se resolvió después de ejecutar:
ng update
ng update @angular/cli
Estás utilizando RxJS 6. Simplemente reemplaza
import { Observable } from ''rxjs/Observable'';
import { of } from ''rxjs/observable/of'';
por
import { Observable, of } from ''rxjs'';
Esto podría ser útil en Angular 6 para obtener más información, consulte este Document
- rxjs: métodos de creación, tipos, planificadores y utilidades
import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from ''rxjs'';
- rxjs / operadores : Todos los operadores canalizables:
import { map, filter, scan } from ''rxjs/operators'';
- rxjs / webSocket: la implementación del tema del socket web
import { webSocket } from ''rxjs/webSocket'';
- rxjs / ajax : la implementación de Rx ajax
import { ajax } from ''rxjs/ajax'';
- rxjs / testing : las utilidades de prueba
import { TestScheduler } from ''rxjs/testing'';
Lo que me ayudó es:
-
Deshágase de todas las rutas de importación antiguas y reemplácelas por otras nuevas como esta:
import { Observable , BehaviorSubject } from ''rxjs'';)
-
Eliminar la carpeta
node_modules
-
npm cache verify
-
npm install
Mi resolución fue agregar la siguiente importación:
import { of } from ''rxjs/observable/of'';
Entonces, el código general de hero.service.ts después del cambio es:
import { Injectable } from ''@angular/core'';
import { Hero } from ''./hero'';
import { HEROES } from ''./mock-heroes'';
import { of } from ''rxjs/observable/of'';
import {Observable} from ''rxjs/Observable'';
@Injectable()
export class HeroService {
constructor() { }
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
}
Prueba esto:
npm install rxjs-compat --save
Sólo hay que poner:
import { Observable} from ''rxjs'';
Así. Nada mas ni menos.
Simplemente elimine
/Observable
de
''rxjs/Observable'';
Si luego obtiene
Cannot find module ''rxjs-compat/Observable''
se
Cannot find module ''rxjs-compat/Observable''
simplemente coloque debajo de la línea al terminal thr y presione enter.
npm install --save rxjs-compat
Tuve un problema similar. RXJS de retroceso de 6.x a la última versión 5.x lo reparó para Angular 5.2.x.
Abra package.json.
Cambie
"rxjs": "^6.0.0",
a
"rxjs": "^5.5.10",
ejecutar
npm update
use
return Observable.of(HEROES);