Skip to content

Commit ecee57c

Browse files
authored
Merge pull request #4172 from aryaemami59/fix-4171
Fix wrong state for injected slices when not declared via `withLazyLoadedSlices`
2 parents 3befbb6 + 78067c5 commit ecee57c

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

packages/toolkit/src/combineSlices.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export interface CombinedSliceReducer<
121121
config?: InjectConfig,
122122
): CombinedSliceReducer<
123123
InitialState,
124-
Id<DeclaredState & WithSlice<SliceLike<ReducerPath, String>>>
124+
Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>
125125
>
126126

127127
/**

packages/toolkit/src/tests/combineSlices.test-d.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,21 @@ describe('type tests', () => {
186186
(rootState: RootState, num: number) => rootState.inner,
187187
)
188188
})
189+
190+
test('correct type of state is inferred when not declared via `withLazyLoadedSlices`', () => {
191+
// Related to https://github.com/reduxjs/redux-toolkit/issues/4171
192+
193+
const combinedReducer = combineSlices(stringSlice)
194+
195+
const withNumber = combinedReducer.inject(numberSlice)
196+
197+
expectTypeOf(withNumber).returns.toEqualTypeOf<{
198+
string: string
199+
number: number
200+
}>()
201+
202+
expectTypeOf(withNumber(undefined, { type: '' }).number).toMatchTypeOf<
203+
number
204+
>()
205+
})
189206
})

0 commit comments

Comments
 (0)