2017-03-03 22 views
0

角度を使用すると、fat arrow functionsrxjsストリーム内で使用すると、コンパイルエラーが頻繁に発生します。Typescript:矢印関数 - TS2339: '{}'型にプロパティがありません

私はまだアプリを実行することができ、それは透明ですが、私はエラーを取り除き、それを理解する方法を知りたいと思います。

は考える:

this.data$ = this.route.params 
     .switchMap(params => 
      Observable.forkJoin([ 
       Observable.of(params), 
       this.http.get('/api', { param1: params.param1, param2: params.param2 }) 
     ]) 
     //**Errors from this part below** 
     .map(([params, data]) => data.prop1 + ' - ' + params.param1) 

は、私はエラーを取得:XX: file.ts [AT-ローダー]で

ERROR XX TS2339:プロパティ 'PROP1' に存在しません。タイプ '{}'。

[at-loader]のエラー file.ts:xx:xx TS2339:プロパティ 'param1'はタイプ '{}'に存在しません。

なぜこれについて文句をしますか?

+0

活字体は、角からのルートのparamsは、空のオブジェクトであり、任意の属性を持つべきではないと思います。型キャストのパラメータを 'any'にするだけで、エラーは – cyrix

+0

になりますので、" data.prop1 as any "を使用することになりますか?あなたは構文で答えることができる場合、構文がどのように見えるかわからない? – Thibs

+0

それはあなたのAPIから取得しているデータに依存します。あなたのAPIはprop1のデータを持っていますか? – Smit

答えて

1

この方法を試してください。

this.data$ = this.route.params 
    .switchMap((params: any) => 
     Observable.forkJoin([ 
      Observable.of(params), 
      this.http.get('/api', { param1: params.param1, param2: params.param2 }) 
    ]) 
    //**Errors from this part below** 
    .map(([params, data]: [any, any]) => data.prop1 + ' - ' + params.param1) 
+0

私はまたこのようなエラーを取り除いた:[params、data]:any []、ありがとう – Thibs

関連する問題