私はチュートリアルから新しいangularを学んでいます( https://angular.io/tutorial/toh-pt4#inject-message-service )。サービスを追加した後、アプリケーションを実行しているときに私はこれで立ち往生しています
../ node_modules/rxjs/Rx "'にはエクスポートされたメンバー' of 'がありません。
hero.service.ts
---------------------
import { Injectable } from '@angular/core';
// import { Observable, of } from 'rxjs';
import { Observable, of } from 'rxjs/Observable';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';
import { MessageService } from './message.service';
@Injectable()
export class HeroService {
constructor(private messageService: MessageService) { }
getHeroes(): Observable<Hero[]> {
// TODO: send the message _after_ fetching the heroes
this.messageService.add('HeroService: fetched heroes');
return of(HEROES);
}
}
私のAngularバージョンと関連情報は
Angular CLI: 1.7.4
Node: 6.14.1
OS: linux x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
TypeScript: 2.5.3
webpack: 3.11.0
@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
TypeScript: 2.5.
コードから、Angular 6およびRxjs 6に基づくAngular公式ガイドに従っているように見えます。Rxjsには、インポートする必要があるoperators
とObservable
が異なる方法になりました。
Rxjs 6では、インポートは以下のようになります-
import { Observable, of } from 'rxjs'; // only need to import from rxjs
しかし、Angular 5.2.xを使用している場合、おそらくRxjs 5xバージョンを使用している可能性があります。インポートステートメントは次のようになります
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
// or
import { of } from 'rxjs/observable/of';
完全な変更ログとangular 5から6にアップグレードするための互換パッケージrxjs-compat
のインストール手順については、以下のリンクを確認してください。
参考のためにこのリンクを参照してください: https://www.academind.com/learn/javascript/rxjs-6-what-changed/