2016-09-11 7 views
4

RC6と[email protected]β11にアップグレードした後、Observableオブジェクトからいくつかの拡張が欠落しているようです。RC6とRxJS Beta 11にアップグレードした後にflatMapが見つからない

flatMapオペレータがなくなったため、mergeMapもここにはありません。私は今、いくつかの演算子が表示されます。私が逃しているものは何ですか?

enter image description here

+1

'rxjs /追加/オペレータ/ flatMap' –

+0

@peeskilletエラーインポートしてください:それはありますかどうかを確認するために、モジュール解決できません 'rxjsを追加/ /オペレータ/ flatMap' – Yodacheese

+1

は、あなたが/内部node_modules/rxjs /追加/オペレータ見ることができflatMap 。そのはず。 –

答えて

23

私は今あなたが個別に演算子をインポートする必要がありますね。あなたが見える場合

node_modules/rxjs/add/operator/mergeMap 

mergeMap.d.tsが表示されます。その内容はそうmergeMapモジュールはflatMapmergeMapの両方を宣言

declare module '../../Observable' { 
    interface Observable<T> { 
     flatMap: MergeMapSignature<T>; 
     mergeMap: MergeMapSignature<T>; 
    } 
} 

です。だから、あなたは、スタイル(つまり、あなたがそれを必要とするすべてのファイルでこれをインポートする必要が)心配ならば、あなたは彼らがインポートAngular tutorial、からplunker例をチェックアウトすることができ、ファイル

import 'rxjs/add/operator/mergeMap`; 

ことだけでインポートすることができますアプリケーションが必要とするすべての演算子をファイルに格納し、そのファイルをapp.componentファイルにインポートするだけです。これをインポートする必要があるのは、1か所だけです。私の経験から、AppComponentが関与していないユニットテストでは、そのファイルを各テストファイルにインポートしなければなりませんでした。角度4にアップグレードした後、私は今flatMapをインポートするための正しい方法であること

+2

APIの表面全体がひどいです。関連する演算子のグループに分割する必要があります。 flatMapを探している人は、mergeMapを見つけて、それを読んでもう片方の別名であることを理解する必要があります。静的メンバーとインスタンスメンバーの区別、特に非標準ファイル名のケーシングとの組み合わせは、実際にはrxjsの悪化を招いています。あなたの答えに対するコメントではなく、正確なものです。 –

1

を実現しました: 'rxjs/Rxの' インポート 'rxjs /追加/オペレータ/ mergeMap' から{観測}

輸入。

+1

質問に追加する内容が不明ですが、 'rxjs/Rx'から 'import {Observable} 'がすべての演算子をインポートする可能性のあるrxjs/Rx名前空間をインポートすることを指摘したいと思います。 'rxjs/Observable'から' import {Observable} 'をインポートしてください。 – Yodacheese

+0

Visual Code Litleで問題が発生しました。 import 'rxjs/add/operator/mergeMap';を追加するときにflatMapをコンパイルしませんでした。しかし、npmをインストールした後、IDLEを閉じて再度開いてみてください。コンパイルはOKです。したがって、ユーザーは必要な演算子だけを追加できます。 – Lupe

関連する問題