我正在努力编译这段代码:
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] 类型的参数'(action:Action)=&gt; void'不能分配给类型'的参数(值:Action,index:number)=&gt; ObservableInput&LT; {}&GT;”。 类型'void'不能分配给'ObservableInput&lt; {}&gt;'。
Stripe.card.createToken
是:see on here。
Action
是:
export interface Action {
type: string;
payload?: any;
}
答案 0 :(得分:0)
您似乎没有从switchMap
返回任何内容?使用switchMap
,您可能会返回一个可观察的(显然是ObservableInput<{}>
)而在这里你不知道。 callback(data)....
不返回任何内容。也许你的意思是return callback(data)....
?
无论如何,这种错误实际上是微不足道的,打字稿很好地用信号通知它们。通常,错误正是它的本质。所以我建议你在发布之前花时间自己调查一下。事实上,你会更快地学习。