@@ -23,9 +23,10 @@ type SliceLikeReducerPath<A extends AnySliceLike> =
23
23
type SliceLikeState < A extends AnySliceLike > =
24
24
A extends SliceLike < any , infer State > ? State : never
25
25
26
- export type WithSlice < A extends AnySliceLike > = {
27
- [ Path in SliceLikeReducerPath < A > ] : SliceLikeState < A >
28
- }
26
+ export type WithSlice < A extends AnySliceLike > = Record <
27
+ SliceLikeReducerPath < A > ,
28
+ SliceLikeState < A >
29
+ >
29
30
30
31
type ReducerMap = Record < string , Reducer >
31
32
@@ -292,7 +293,7 @@ export interface CombinedSliceReducer<
292
293
}
293
294
}
294
295
295
- type InitialState < Slices extends Array < AnySliceLike | ReducerMap > > =
296
+ type InitialState < Slices extends ( AnySliceLike | ReducerMap ) [ ] > =
296
297
UnionToIntersection <
297
298
Slices [ number ] extends infer Slice
298
299
? Slice extends AnySliceLike
@@ -307,7 +308,7 @@ const isSliceLike = (
307
308
'reducerPath' in maybeSliceLike &&
308
309
typeof maybeSliceLike . reducerPath === 'string'
309
310
310
- const getReducers = ( slices : Array < AnySliceLike | ReducerMap > ) =>
311
+ const getReducers = ( slices : ( AnySliceLike | ReducerMap ) [ ] ) =>
311
312
slices . flatMap ( ( sliceOrMap ) =>
312
313
isSliceLike ( sliceOrMap )
313
314
? [ [ sliceOrMap . reducerPath , sliceOrMap . reducer ] as const ]
@@ -368,7 +369,7 @@ const original = (state: any) => {
368
369
const emptyObject = { }
369
370
const noopReducer : Reducer < Record < string , any > > = ( state = emptyObject ) => state
370
371
371
- export function combineSlices < Slices extends Array < AnySliceLike | ReducerMap > > (
372
+ export function combineSlices < Slices extends ( AnySliceLike | ReducerMap ) [ ] > (
372
373
...slices : Slices
373
374
) : CombinedSliceReducer < Id < InitialState < Slices > > > {
374
375
const reducerMap = Object . fromEntries < Reducer > ( getReducers ( slices ) )
0 commit comments