問題タブ [rxjs6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - rxjsを6にアップグレードした後、プロパティ「map」がタイプ「Observable」に存在しません
https://update.angular.ioの指示に従って、Angular アプリケーションをバージョン 5.2 から 6.0 にアップグレードしました。
「rxjs-5-to-6-migrate」移行のため、Angular アプリケーションがビルドされません。
bla.ts のエラー: エラー TS2339: プロパティ 'map' がタイプ 'Observable' に存在しません。
次のインポートがあります。
このようにインポートを変更すると、機能します:
しかし、理由がわかりません...すべての演算子をインポートするのではなく、明示的なインポートを使用したいのです。
更新:いくつかの回答が指摘したように、演算子を使用できるようにするにはパイプを使用する必要があります。オペレーターをオブザーバブルにチェーンできると思っていたので、これは私の問題でした。
古いスタイル:
新しいスタイル
angular6 - Angular v6、rxjs v6 エラー TS2339: プロパティ 'pipe' がタイプ 'OperatorFunction に存在しません
rxjs-lint パッケージと次のコマンドを使用して、新しいパイプメソッドを使用して Angular 5.5/rxJS5.5 で正常に動作するコードを Angular 6/rxJS6 に更新しました。
インポートなどは期待どおりに修正されましたが、Angular の v5/RxJS の 5.5 で正常に動作していたコードが次のエラーでエラーになります。
rxjs6-compat パッケージを削除しましたが、違いはありません。v5.5 よりも前のバージョンの rxJS がビルドにあると認識されているかのようです。 npm install で使用されるpackage.jsonは次のようになります...
rxjs オペレーターのインポートは rxjs6 形式です。
機能したが、このエラーが発生するステートメントは次のとおりです。
私は何を逃したのですか?rxJS 5.5 では問題がなかったのに、パイプがこのエラーを引き起こしているのはなぜですか?
angular - rxjs-compatを必要とせずに、古いRxJSのようにRxJS 6で使用されている演算子のみをインポートする方法は?
以前は、次のコードで使用済みの演算子のみをインポートできました。
これにより、小さなバンドル (vendor.ts) が生成されます。
rxjs-compatを必要とせずにRxJSでこれを行うには?
上記のコードを変更してimport 'rxjs';
、より大きなバンドルを生成します。
アップデート:
あなたが投稿したすべての回答に従いましたが、何もうまくいきません。これは私の更新された vendor.ts です:
「rxjs/add/operator/*」も使ってみました。
これは私がrxjsをインポートする方法です:
このドキュメント ( https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md#build-and-treeshaking )に従って Webpack 3 の構成を変更しましたが、何も機能しません。
最後に、Webpack Bundle Analyzer の結果を見てください。
バンドルにはすべてのオペレーターが含まれます。この関連する問題を見つけました: https://github.com/angular/angular-cli/issues/9069