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
- rxjs: Luontimenetelmät, tyypit, ajastimet ja apuvälineet
import { Observable, Subject, asapScheduler, pipe, of, from, interval, merge, fromEvent } from 'rxjs';- rxjs/operators: Kaikki putkettavat operaattorit:
import { map, filter, scan } from 'rxjs/operators';- rxjs/webSocket: WebSocket-aiheiden toteutus
import { webSocket } from 'rxjs/webSocket';- rxjs/ajax: Rx:n ajax-toteutus
import { ajax } from 'rxjs/ajax';- 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:
Poista kaikki vanhat tuontipolut ja korvaa ne uusilla, kuten tämä:
import { Observable , BehaviorSubject } from 'rxjs';)Poista
node_moduleskansionpm välimuistin tarkistusnpm install




