J’ai une erreur en apprenant Angular. “N’a pas de membre exporté ‘Observable'”

code

information d'erreur

code:

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 { return of(HEROES); } } 

information d’erreur:

erreur TS2307: Impossible de trouver le module ‘rxjs-compat / Observable’. node_modules / rxjs / observable / of.d.ts (1,15): erreur TS2307: impossible de trouver le module ‘rxjs-compat / observable / of’. src / app / hero.service.ts (2,10): erreur TS2305: le module ‘”F: / tour-of-heroes / node_modules / rxjs / Observable”‘ n’a pas de membre exporté ‘Observable’. src / app / hero.service.ts (15,12): erreur TS2304: impossible de trouver le nom ‘de’.

Version angular:

version

Cela pourrait être utile dans Angular 6 pour plus d’informations, consultez ce document.

  1. rxjs: méthodes de création, types, ordonnanceurs et utilitaires
  import {Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent} de 'rxjs'; 
  1. rxjs / operators : Tous les opérateurs pipables:
  import {map, filter, scan} de 'rxjs / operators'; 
  1. rxjs / webSocket: l’ implémentation du sujet du socket web
  import {webSocket} depuis 'rxjs / webSocket'; 
  1. rxjs / ajax : l’implémentation de Rx ajax
  import {ajax} de 'rxjs / ajax'; 
  1. rxjs / testing : les utilitaires de test
  import {TestScheduler} à partir de 'rxjs / testing'; 

Apparemment (comme vous pointez dans le journal des erreurs), après la mise à jour vers Angular 6.0.0, rxjs-compat est manquant.

Exécutez npm install rxjs-compat --save pour installer. Devrait le réparer.

J’ai remplacé le code original par import { Observable, of } from 'rxjs' , et le problème est résolu.

entrer la description de l'image ici

entrer la description de l'image ici

Il suffit de mettre:

import { Observable} from 'rxjs';

Juste comme ça. Rien de plus ou moins.

Vous utilisez RxJS 6. Remplacez simplement

 import { Observable } from 'rxjs/Observable'; import { of } from 'rxjs/observable/of'; 

par

 import { Observable, of } from 'rxjs'; 

J’ai eu un problème similaire. RXJS back-revving de 6.x à la dernière version 5.x corrigée pour Angular 5.2.x.

Ouvrez le package.json.

Remplacez "rxjs": "^6.0.0", par "rxjs": "^5.5.10",

lancez la npm update

Ma résolution ajoutait l’importation suivante: import { of } from 'rxjs/observable/of';

Le code global de hero.service.ts après le changement est donc le suivant:

 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 { return of(HEROES); } } 

Le composant de angular-split n’est pas pris en charge dans Angular 6, donc pour le rendre compatible avec l’installation Angular 6 après une dépendance dans votre application

Pour que cela fonctionne jusqu’à ce qu’il soit mis à jour, utilisez:

 "dependencies": { "angular-split": "1.0.0-rc.3", "rxjs": "^6.2.2", "rxjs-compat": "^6.2.2", } 

Dans mon cas, cette erreur se produisait parce que j’avais une ancienne version de ng cli dans mon ordinateur.

Le problème a été résolu après exécution:

ng update

ng update @angular/cli

utiliser le return Observable.of(HEROES);