From 294aaca92e02baf0044415547e69d15af3e7a1ff Mon Sep 17 00:00:00 2001 From: Thammi Date: Thu, 20 Feb 2020 14:40:50 +0100 Subject: [PATCH 1/2] Improve types to support reducers with and without default handling --- index.d.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/index.d.ts b/index.d.ts index f29eb8c..9d72f21 100644 --- a/index.d.ts +++ b/index.d.ts @@ -2,12 +2,21 @@ type Action = { type: string; }; -type Reducer = (state: S, action: Action) => S; +type Reducer = (state: S | undefined, action: Action) => S; +type PreloadedReducer = (state: S, action: Action) => S; export default function reduceReducers( - initialState: S | null, - ...reducers: Reducer[] + initialState: S, + ...reducers: PreloadedReducer[] ): Reducer; export default function reduceReducers( - ...reducers: Reducer[] + initialReducer: Reducer, + ...reducers: PreloadedReducer[] ): Reducer; +export default function reduceReducers( + initialState: S | null, + ...reducers: PreloadedReducer[] +): PreloadedReducer; +export default function reduceReducers( + ...reducers: PreloadedReducer[] +): PreloadedReducer; From 933db0d28ed396a229f47bd4253c2c6d1394fe6e Mon Sep 17 00:00:00 2001 From: Thammi Date: Wed, 26 Feb 2020 16:23:53 +0100 Subject: [PATCH 2/2] Add one definition for initalValue and initialReducer --- index.d.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/index.d.ts b/index.d.ts index 9d72f21..39dc6d0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -13,6 +13,11 @@ export default function reduceReducers( initialReducer: Reducer, ...reducers: PreloadedReducer[] ): Reducer; +export default function reduceReducers( + initialState: S | null, + initialReducer: Reducer, + ...reducers: PreloadedReducer[] +): Reducer; export default function reduceReducers( initialState: S | null, ...reducers: PreloadedReducer[]