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:
Dies kann hilfreich sein in Winkel 6 für weitere Informationen siehe Dokument
{Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent} aus 'rxjs' importieren;
{map, filter, scan} aus 'rxjs/operator' importieren;
{webSocket} aus 'rxjs/webSocket' importieren;
{ajax} aus 'rxjs/ajax' importieren;
{TestScheduler} aus 'rxjs/testing' importieren;
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.
Einfach gesagt:
import { Observable} from 'rxjs';
Genau so. Nichts mehr oder weniger.
Sie verwenden RxJS 6. Ersetzen Sie einfach
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
durch
import { Observable, of } from 'rxjs';
Versuche dies:
npm install rxjs-compat --save
Was mir geholfen hat ist:
Beseitigen Sie alle alten Importpfade und ersetzen Sie sie durch neue wie folgt:
import { Observable , BehaviorSubject } from 'rxjs';)
Löschen Sie den Ordner node_modules
npm cache verify
npm install
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
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",
}
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);
}
}
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
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
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]