Could you then do the case statements in the reducer like this?
switch (action.type) {
case IncrementCounterAction.type:
return state.update(...);
case DeccrementCounterAction.type:
return state.update(...);
....
}