私はtypescript angular 2 appを構築していて、rxjsを使っています。私はここでの例を以下しています:角度2 rxjs switchmapがObservableを返す<Object>
https://angular.io/docs/ts/latest/tutorial/toh-pt6.html#!#stq=formgroup&stp=1
私は強くtypescriptですと私のリターン署名を入力しようとしていますすべてけれども。これは私の問題かもしれません。しかし、あなたができるはずのようです。
Observable>を返すように型指定されたサービスがあるとします。
public search(term: string) : Observable<Array<MyModel>> { // http call }
私のコンポーネントでは、この観測可能なストリームをリッスンし、結果を返します。
private search = new Subject<Search>();
results: Observable<Array<MyModel>>;
ngOnInit() {
this.results = this.search
.debounceTime(400)
.distinctUntilChanged()
.switchMap(search => {
return service.search(search.term); // returns Observable<Array<MyModel>>
});
}
これはswitchmapではなく、私のタイプの観測を返している理由を私は理解していないメッセージCannot convert type Observable<Object> to type Observable<MyModel[]>>
でコンパイルされません。結果に与える前に再度マップする必要がありますか?これはswitchmapのリターンシグネチャのタイポスクリプトのタイプミスですか?あなたのハンドラに戻り値の型与える
:
私はあなただけのキャストが必要だと思います。 – Andrew
私はそれを試みましたが、キャストが所属するスイッチマップチェーンの終わりではなく、returnステートメントを無造作にキャストしました。それは欠場する骨が抜けたものでした。ありがとう! – twifosp