angular 2テストプロジェクト(TypeScript)- https://github.com/qdouble/angular-webpack2-starter 。にこの素晴らしいレポを使用しています。 Observable.of(..)を使用する必要があります。インポートしようとすると:
import { Observable } from "rxjs/Observable";
import { of } from 'rxjs/observable/of';
私は得る:
プロパティ 'of'はタイプ 'typeof Observable'に存在しません。
また、次の方法で試しました。
import { Observable } from "rxjs/Observable";
import { of } from 'rxjs/add/observable/of'; // notice 'add'
私が得た:
node_modules/rxjs/add/observable/of "'には、エクスポートされたメンバー' of 'がありません。
したがって、ObservableのこのOf()静的メソッドをどのようにインポートできますか?
インポートする必要はありません{of}
from 'rxjs/add/observable/of'
。直接使用できます
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/of";
または、すべての演算子をバンドルした「rxjs/Rx」から 悪い練習Observable
をインポートできます。
import { Observable } from "rxjs/Rx";
から https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
バージョン5.5から、rxjs/operatorsでアクセスできる「パイプ可能な演算子」が出荷されました(複数形の「演算子」に注意してください)。これらは、rxjs/add/operator/*にある「パッチ」演算子よりも、必要な演算子だけを取り込むためのより良いアプローチを意味します。
「パッチを適用する」インポートは廃止される予定なので、厳密なインポートを使用した方が良いでしょう。
import { of as observableOf } from 'rxjs/observable/of'
そしてそのように使用します
const myObs$: Observable<number> = observableOf(1, 2, 3)
RxJS 6以降、インポートは大幅に簡素化され、より多くの直感的なAPIサーフェスのおかげで混乱が少なくなりました。
of
などの作成メソッドは、'rxjs'
から直接インポートされます。
import { of } from 'rxjs';
すべてのパイプ可能演算子は、'rxjs/operators'
からインポートされます。例:
import { tap, map } from 'rxjs/operators';
RxJS 5から直接更新する場合は、RxJSのTSLintルールを利用することもできます。これにより、インポートがより新しく、簡素化されたAPIに自動的に修正されます。
npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p [path/to/tsconfig.json]