typescript - Angular - "nu are membru exportat 'Observable'"


Cod Typescript:

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);
  }

}

informații despre eroare:

eroare TS2307: Nu se poate găsi modulul 'rxjs-compat/Observable'. node_modules/rxjs/observable/of.d.ts(1,15): eroare TS2307: Nu se poate găsi modulul 'rxjs-compat/observable/of'. src/app/hero.service.ts(2,10): eroare TS2305: Modulul '"F:/angular-tour-of-heroes/node_modules/rxjs/Observable"' nu are membru exportat 'Observable'. src/app/hero.service.ts(15,12): eroare TS2304: Nu se poate găsi numele 'of'.

package.json fișier cu versiunea Angular:

Răspuns #1

Acest lucru ar putea fi util în Angular 6. Pentru mai multe informații, consultați acest document

  1. rxjs: Metode de creare, tipuri, planificatoare și utilitare
import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from 'rxjs';
  1. rxjs/operators: Toți operatorii care pot fi utilizați în pipe:
import { map, filter, scan } from 'rxjs/operators';
  1. rxjs/webSocket: Implementarea subiectului websocket
import { webSocket } from 'rxjs/webSocket';
  1. rxjs/ajax: Implementarea ajax a Rx
import { ajax } from 'rxjs/ajax';
  1. rxjs/testing: Utilitarele pentru testare
import { TestScheduler } from 'rxjs/testing';

Răspunsul #2

Aparent (așa cum menționezi în jurnalul de erori), după actualizarea la Angular 6.0.0 rxjs-compat lipsește.

Rulați npm install rxjs-compat --save pentru a instala. Ar trebui să rezolve problema.

Răspunsul #3

Doar pune:

import { Observable} from 'rxjs';

Exact așa. Nimic mai mult sau mai puțin.

Răspunsul #4

Am înlocuit codul original cu import { Observable, of } from 'rxjs', și problema este rezolvată.

Răspunsul #5

Folosești RxJS 6. Doar înlocuiește

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

de

import { Observable, of } from 'rxjs';

Răspuns #6

Încearcă asta:

npm install rxjs-compat --save

Răspunsul #7

Ceea ce m-a ajutat este:

  1. Scapă de toate căile de import vechi și înlocuiește-le cu altele noi astfel:

    import { Observable ,  BehaviorSubject } from 'rxjs';)
  2. Șterge folderul node_modules

  3. npm cache verify
  4. npm install