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);
}
}
エラー情報:
エラーTS2307:モジュール 'rxjs-compat/Observable'が見つかりません。 node_modules/rxjs/observable/of.d.ts(1,15):エラーTS2307:モジュール 'rxjs-compat/observable/of'が見つかりません。 src/app/hero.service.ts(2,10):エラーTS2305:モジュール '' F:/ Angular-tour-of-heroes/node_modules/rxjs/Observable ''にはエクスポートされたメンバー 'Observable'がありません。 src/app/hero.service.ts(15,12):エラーTS2304:名前 'of'が見つかりません。
Angular versionを含むpackage.json
ファイル:
これはAngular 6で役に立ちます。詳細についてはこちらを参照してください ドキュメント
'rxjs'から{Observable、Subject、asapScheduler、pipe、of、from、interval、merge、fromEvent}をインポートします。
'rxjs/operator'から{map、filter、scan}をインポートします。
'rxjs/webSocket'から{webSocket}をインポートしてください。
'rxjs/ajax'から{ajax}をインポートしてください。
'rxjs/testing'から{TestScheduler}をインポートします。
どうやら([エラーログ]で示したように)Angular 6.0.0にアップデートした後にrxjs-compatがありません。
インストールするにはnpm install rxjs-compat --save
を実行してください。それを修正する必要があります。
ちょうど置く:
import { Observable} from 'rxjs';
そのように。多かれ少なかれ何もない。
あなたはRxJS 6を使っています。
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
によって
import { Observable, of } from 'rxjs';
私を助けたのは:
古いインポートパスをすべて取り除き、次のように新しいものに置き換えます。
import { Observable , BehaviorSubject } from 'rxjs';)
node_modules
フォルダを削除します
npm cache verify
npm install
私は同様の問題を抱えていました。 RXJSを6.xから最新の5.xリリースに復活させたことで、Angular 5.2.xが修正されました。
Package.jsonを開きます。
"rxjs": "^6.0.0",
を"rxjs": "^5.5.10",
に変更
npm update
を実行
angular-split
コンポーネントはAngular 6ではサポートされていないため、アプリケーション内の依存関係に従ってAngular 6 installと互換性がある
更新されるまでこれを機能させるには、以下を使用します。
"dependencies": {
"angular-split": "1.0.0-rc.3",
"rxjs": "^6.2.2",
"rxjs-compat": "^6.2.2",
}
私の決議は次のインポートを追加することでした:import { of } from 'rxjs/observable/of';
そのため、変更後のhero.service.tsのコード全体は次のようになります。
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);
}
}
/Observable
から'rxjs/Observable';
を削除するだけです
あなたがそれからCannot find module 'rxjs-compat/Observable'
を得るならば、ちょうどthrターミナルへのラインの下に置いて、enterキーを押してください。
npm install --save rxjs-compat
これを試して:
npm install rxjs-compat --save
私の場合、このエラーはコンピュータに古いバージョンのng cliがあるために起こっていました。
実行後、問題は解決しました:
ng update
ng update @angular/cli
メモリ内角度のWeb API バージョンを更新します。チュートリアルの間にインストールされたデフォルトの角度付きWeb Web API バージョン角度付きツアーは0.4でした。私の場合はそれは魅力のように働いた。 (RxJS 6でAngular 7を使う)
npm i [email protected]