2017-03-23 9 views
-1

rxjs:マッピングネストされた観測私はこのコードをコンパイルしようと苦労してい

this.actions$ 
    .ofType('ADD_SOURCE') 
    .switchMap(
     (action: Action) => { 
     var data = <StripeCardTokenData>{ 
      number: '4242424242424242', 
      cvc: '132', 
      exp_month: 12, 
      exp_year: 2018 
     }; 

     var callback = Observable.bindNodeCallback(Stripe.card.createToken); 
     callback(data) 
      .map((response: StripeCardTokenResponse) => { 
      if (response.error) 
       return <Action>{ type: 'ADD_SOURCE_FAILED', payload: { code: response.error.code, msg: response.error.message }}; 
      else 
       return <Action>{ type: 'ADD_SOURCE_SUCCESS', payload: <CardDTO>{id: response.id, last4: response.card.last4}}; 
      }) 
      .catch(_ => { 
      return Observable.of(<Action>{ type: 'ADD_SOURCE_FAILED', payload: { }}); 
      }); 
     } 
    ); 

活字体が私に言っている:

[TS]「タイプの 引数(アクション:アクション) => void 'は、型'(値:アクション、インデックス:番号)=> ObservableInput < {}>型のパラメータに割り当てられません。 タイプ 'ObservableInput < {}>'にタイプ 'void'を割り当てることはできません。

Stripe.card.createTokenは、see on hereである。

Actionは次のとおりです。

export interface Action { 
    type: string; 
    payload?: any; 
} 

答えて

0

あなたがswitchMapから何も返さないようですか? switchMapでは、あなたは観測可能な(明らかにObservableInput<{}>)を返すと仮定しています。 callback(data)....は何も返しません。あなたはreturn callback(data)....を意味するのでしょうか?

いずれにしても、この種のエラーは実際には些細なことであり、typescriptはそれを通知するのには優れています。一般に、エラーはまさにそのエラーです。だから私はここに投稿する前に自分で調査する時間を費やすことをお勧めします。あなたは実際により速く学びます。

関連する問題