我的Angular 7应用程序中有其他条件,我在其中使用状态管理器和rxjs,并且希望使代码更具可读性。在不同的条件下,我需要调度不同的动作。我决定通过将某些部分移至可重用功能来减少代码块,并需要将NGRX操作作为参数传递给这些功能。但是打字稿会引发错误:参数“ xxx”隐式具有“ any”类型。
问题是-我应该为动作定义哪种类型?正如setSomeDataAction:操作-不起作用
现在输入代码:
if (mobile) {
if (newVisitor) {
this.store.dispatch(SetMobileForNewVisitor(payload));
} else {
this.store.dispatch(SetMobileForExistingVisitor(payload));
}
} else {
if (newVisitor) {
this.store.dispatch(SetNotMobileForNewVisitor(payload));
} else {
this.store.dispatch(SetNotMobileForExistingVisitor(payload));
}
}
引发打字错误的代码
mobile ?
this.dispatchRemoveOne(SetMobileForNewVisitor, SetMobileForExistingVisitor, payload) :
this.dispatchRemoveOne(SetNotMobileForNewVisitor,SetNotMobileForExistingVisitor, payload);
private dispatchRemoveOne(newVisitorAction, existingVisitorAction, payload) {
newVisitor
? this.store.dispatch(newVisitorAction(payload))
: this.store.dispatch(existingVisitorAction(payload));
}
我正在尝试类似的事情:
private dispatchRemoveOne(newVisitorAction: Action, existingVisitorAction: Action, payload: Payload[]) {
newVisitor
? this.store.dispatch(newVisitorAction(payload))
: this.store.dispatch(existingVisitorAction(payload));
}