wake-up-neo.com

Angular - "hat kein exportiertes Mitglied 'Observable'"

code

error info

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

}

Fehlerinfo:

fehler TS2307: Das Modul 'rxjs-compat/Observable' kann nicht gefunden werden. Knotenmodule/rxjs/observable/of.d.ts (1,15): Fehler TS2307: Das Modul 'rxjs-compat/observable/of' kann nicht gefunden werden. src/app/hero.service.ts (2,10): Fehler TS2305: Das Modul "F:/angle-tour-of-heroes/node_modules/rxjs/Observable" hat kein exportiertes Mitglied "Observable". src/app/hero.service.ts (15,12): Fehler TS2304: Name 'von' kann nicht gefunden werden.

package.json Datei mit Angular Version:

version

132
Thomas Lee

Ich habe den ursprünglichen Code durch import { Observable, of } from 'rxjs' ersetzt, und das Problem ist behoben.

enter image description here

enter image description here

49
Thomas Lee

Dies kann hilfreich sein in Winkel 6 für weitere Informationen siehe Dokument

  1. rxjs: Erstellungsmethoden, Typen, Scheduler und Dienstprogramme
{Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent} aus 'rxjs' importieren;
  1. rxjs/operator : Alle pipeable operator:
{map, filter, scan} aus 'rxjs/operator' importieren;
  1. rxjs/webSocket: Die Implementierung des Betreffs des Web-Sockets
{webSocket} aus 'rxjs/webSocket' importieren;
  1. rxjs/ajax : Die Rx-Ajax-Implementierung
{ajax} aus 'rxjs/ajax' importieren;
  1. rxjs/testing : Die Testdienstprogramme
{TestScheduler} aus 'rxjs/testing' importieren;
172
Sanjeet kumar

Anscheinend (wie Sie im Fehlerprotokoll vermerken) fehlt nach der Aktualisierung auf Angular 6.0.0 rxjs-compat.

Führen Sie zum Installieren npm install rxjs-compat --save aus. Sollte es beheben.

94
pau

Einfach gesagt:

import { Observable} from 'rxjs';

Genau so. Nichts mehr oder weniger.

71

Sie verwenden RxJS 6. Ersetzen Sie einfach

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

durch

import { Observable, of } from 'rxjs';
26
veben

Versuche dies:

npm install rxjs-compat --save
7
Yogesh Patil

Was mir geholfen hat ist:

  1. Beseitigen Sie alle alten Importpfade und ersetzen Sie sie durch neue wie folgt:

    import { Observable , BehaviorSubject } from 'rxjs';)

  2. Löschen Sie den Ordner node_modules

  3. npm cache verify
  4. npm install
7
Jackie

Ich hatte ein ähnliches Problem. Das Zurückdrehen von RXJS von 6.x auf die neueste Version 5.x behebt das Problem für Angular 5.2.x.

Öffne package.json.

Ändern Sie "rxjs": "^6.0.0", in "rxjs": "^5.5.10",

führe npm update aus

5
Matthew Smith

Die Komponente angular-split wird in Angular 6 nicht unterstützt. Damit sie mit Angular 6 kompatibel ist, müssen Sie die folgenden Abhängigkeiten in Ihrer Anwendung installieren

Damit dies funktioniert, bis es aktualisiert ist, verwenden Sie:

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

In meiner Auflösung wurde der folgende Import hinzugefügt: import { of } from 'rxjs/observable/of';

Der Gesamtcode von hero.service.ts nach der Änderung lautet also:

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);
  }
}
2
Mark Mishaev

Entfernen Sie einfach /Observable aus 'rxjs/Observable';

Wenn Sie dann Cannot find module 'rxjs-compat/Observable' erhalten, setzen Sie einfach die Zeile unter das Terminal und drücken Sie die Eingabetaste.

npm install --save rxjs-compat
2
Blasanka

In meinem Fall ist dieser Fehler aufgetreten, weil ich eine alte Version von ng cli auf meinem Computer hatte.

Das Problem wurde nach dem Laufen gelöst:

ng update

ng update @angular/cli

0
sebbab

Update Angular-In-Memory-Web-API Version. Die während des Tutorials installierte Standardversion Angular-In-Memory-Web-APIAngular-Tour-Of-Heroes war 0.4. In meinem Fall hat es wie ein Zauber gewirkt. (Verwenden von Angular 7 mit RxJS 6)

npm i [email protected]
0
rtrigo