From 2da5f0dc881f5508c3906a4af79ef7be64b069b1 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 8 Feb 2024 04:56:34 -0600 Subject: [PATCH 1/3] Fix `CombinedSliceReducer` type issue --- packages/toolkit/src/combineSlices.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolkit/src/combineSlices.ts b/packages/toolkit/src/combineSlices.ts index f045f14f17..1229084799 100644 --- a/packages/toolkit/src/combineSlices.ts +++ b/packages/toolkit/src/combineSlices.ts @@ -121,7 +121,7 @@ export interface CombinedSliceReducer< config?: InjectConfig, ): CombinedSliceReducer< InitialState, - Id>> + Id>> > /** From fcc85d9a0eb52cdce4ac35550a243975b5553646 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 8 Feb 2024 05:11:04 -0600 Subject: [PATCH 2/3] Add Type tests for #4171 --- .../toolkit/src/tests/combineSlices.test-d.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/toolkit/src/tests/combineSlices.test-d.ts b/packages/toolkit/src/tests/combineSlices.test-d.ts index 6b773a5d54..8059f785ad 100644 --- a/packages/toolkit/src/tests/combineSlices.test-d.ts +++ b/packages/toolkit/src/tests/combineSlices.test-d.ts @@ -186,4 +186,21 @@ describe('type tests', () => { (rootState: RootState, num: number) => rootState.inner, ) }) + + test('correct type of state is inferred when not declared via `withLazyLoadedSlices`', () => { + // Related to https://github.com/reduxjs/redux-toolkit/issues/4171 + + const combinedReducer = combineSlices(stringSlice) + + const withNumber = combinedReducer.inject(numberSlice) + + expectTypeOf(withNumber).returns.toEqualTypeOf<{ + string: string + number: number + }>() + + expectTypeOf(withNumber(undefined, { type: '' }).number).toMatchTypeOf< + number | undefined + >() + }) }) From 78067c52f2549eff889ba101ea5c3f28997b0eb7 Mon Sep 17 00:00:00 2001 From: Arya Emami Date: Thu, 8 Feb 2024 07:06:23 -0600 Subject: [PATCH 3/3] Fix assertion --- packages/toolkit/src/tests/combineSlices.test-d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolkit/src/tests/combineSlices.test-d.ts b/packages/toolkit/src/tests/combineSlices.test-d.ts index 8059f785ad..5a7927fc84 100644 --- a/packages/toolkit/src/tests/combineSlices.test-d.ts +++ b/packages/toolkit/src/tests/combineSlices.test-d.ts @@ -200,7 +200,7 @@ describe('type tests', () => { }>() expectTypeOf(withNumber(undefined, { type: '' }).number).toMatchTypeOf< - number | undefined + number >() }) })