typescript - Angular - "ei ole vietyä jäsentä 'Observable'"


Typescript-koodi:

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

}

virhetiedot:

virhe TS2307: Modulaaria 'rxjs-compat/Observable' ei löydy. node_modules/rxjs/observable/of.d.ts(1,15): virhe TS2307: Modulaaria 'rxjs-compat/observable/of' ei löydy. src/app/hero.service.ts(2,10): virhe TS2305: Modulissa '"F:/angular-tour-of-heroes/node_modules/rxjs/Observable"' ei ole vietyä jäsentä 'Observable'. src/app/hero.service.ts(15,12): virhe TS2304: Nimeä 'of' ei löydy.

package.json-tiedosto Angular-version kanssa:

Vastaus #1

Tämä saattaa olla hyödyllistä Angular 6 -sovelluksessa, lisätietoja saat tästä dokumentista

  1. rxjs: Luontimenetelmät, tyypit, ajastimet ja apuvälineet
import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from 'rxjs';
  1. rxjs/operators: Kaikki putkettavat operaattorit:
import { map, filter, scan } from 'rxjs/operators';
  1. rxjs/webSocket: WebSocket-aiheiden toteutus
import { webSocket } from 'rxjs/webSocket';
  1. rxjs/ajax: Rx:n ajax-toteutus
import { ajax } from 'rxjs/ajax';
  1. rxjs/testing: Testausapuohjelmat
import { TestScheduler } from 'rxjs/testing';

Vastaus #2

Ilmeisesti (kuten osoitat virhelokissa), päivityksen jälkeen Angular 6.0.0:aan rxjs-compat puuttuu.

Suorita npm install rxjs-compat --save asentaaksesi. Sen pitäisi korjata se.

Vastaus #3

Kirjoita vain:

import { Observable} from 'rxjs';

Juuri niin. Ei enempää tai vähempää.

Vastaus #4

Korvasin alkuperäisen koodin import { Observable, of } from 'rxjs' -rivillä, ja ongelma on ratkaistu.

Vastaus #5

Käytät RxJS 6:ta. Vaihda vain

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

luona

import { Observable, of } from 'rxjs';

Vastaus #6

Kokeile tätä:

npm install rxjs-compat --save

Vastaus #7

Mikä auttoi minua on:

  1. Poista kaikki vanhat tuontipolut ja korvaa ne uusilla, kuten tämä:

    import { Observable ,  BehaviorSubject } from 'rxjs';)
  2. Poista node_modules kansio

  3. npm välimuistin tarkistus
  4. npm install

Aiheeseen liittyviä artikkeleita