を使用してrxjs移行ツールを実行した後
rxjs-5-to-6-migrate -p src/tsconfig.app.json
私は今リンティングエラーを取得しています:
composeLatestは非推奨です:静的composeLatestを支持して非推奨です。
移行コマンドを実行する前のコードは次のとおりです。
this.store.combineLatest(
this.store.select(lang.getCurrent),
this.store.select(lang.getCurrentLocale)
).subscribe(([state, currentLang, locale]) => {
this._language = session.language === currentLang ? '' : currentLang;
this._locale = session.locale === locale ? '' : locale;
});
移行コマンドを実行した後の私のコード:(現在リンティングエラーが表示されています)
import {map, combineLatest} from 'rxjs/operators';
this.store.combineLatest(
this.store.select(lang.getCurrent),
this.store.select(lang.getCurrentLocale)
).subscribe(([state, currentLang, locale]) => {
this._language = session.language === currentLang ? '' : currentLang;
this._locale = session.locale === locale ? '' : locale;
});
質問はこのstackoverflowの質問で尋ねられましたが、それは十分に具体的ではありませんでした: Angular 6 ng lint duplicate errors and warnings、composeLatest is deprecated 。
更新:ofir fridman's answer を参照してください
この記事で答えを見つけました: RxJS 6:新機能と変更点 (これは official docs から来ています):
解決策は変換することです:
import { combineLatest } from 'rxjs/operators';
a$.pipe(combineLatest(b$, c$));
に:
import { combineLatest } from 'rxjs';
combineLatest(a$, b$, c$);
Rxjs 6.5で
import { combineLatest } from 'rxjs';
combineLatest([a$, b$, c$])
rxjsバージョン6.4.0
rxJs演算子からマップ演算子をインポートする必要があります、それは動作します
combineLatest(a$, b$, c$).pipe(map([a, b, c]) => treat(a, b, c))