Improve types to support reducers with and without default handling #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
An attempt to unify original reducers as defined by redux project (takes
undefined
as state argument, namedReducer
) and the way reducers were defined here (does not takeundefined
as state argument, renamed toPreloadedReducer
). Please note that aReducer
is always aPreloadedReducer
as well. The types return the more generalReducer
where possible.It handles the following use cases I could come up with:
initialState
(removednull
) returning aReducer
initialState
(as before withnull
), returning aPreloadedReducer
(Personally don't see much value in this one. Maybe add another option withintialState
andReducer
as second argument?)Reducer
as first argument injecting the default state, returning aReducer
PreloadedReducer
s, returning aPreloadedReducer
I am not sure whether type inference is working the way it was before for all use cases. In my project (one
Reducer
and multiplePreloadedReducer
) type inference worked as expected. I could build some additional test cases if required.Naming of
PreloadedReducer
could be improved.Related to pull request #38. Decided to redefine Reducer for now.