Skip to content

Commit 90a7737

Browse files
committed
Merge branch 'create-slice-creators' into entity-methods-creator
2 parents 45de908 + ef2d024 commit 90a7737

File tree

2 files changed

+35
-44
lines changed

2 files changed

+35
-44
lines changed

packages/toolkit/src/asyncThunkCreator.ts

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,39 @@ import type { CaseReducer } from './createReducer'
1010
import type {
1111
CreatorCaseReducers,
1212
ReducerCreator,
13-
ReducerCreatorEntry,
1413
ReducerDefinition,
1514
} from './createSlice'
1615
import { ReducerType } from './createSlice'
1716
import type { Id } from './tsHelpers'
1817

19-
declare module './createSlice' {
20-
export interface SliceReducerCreators<
21-
State,
22-
CaseReducers extends CreatorCaseReducers<State>,
23-
Name extends string,
24-
ReducerPath extends string,
25-
> {
26-
[ReducerType.asyncThunk]: ReducerCreatorEntry<
27-
AsyncThunkCreator<State>,
28-
{
29-
actions: {
30-
[ReducerName in keyof CaseReducers]: CaseReducers[ReducerName] extends AsyncThunkSliceReducerDefinition<
31-
State,
32-
infer ThunkArg,
33-
infer Returned,
34-
infer ThunkApiConfig
35-
>
36-
? AsyncThunk<Returned, ThunkArg, ThunkApiConfig>
37-
: never
38-
}
39-
caseReducers: {
40-
[ReducerName in keyof CaseReducers]: CaseReducers[ReducerName] extends AsyncThunkSliceReducerDefinition<
41-
State,
42-
any,
43-
any,
44-
any
45-
>
46-
? Id<
47-
Pick<
48-
Required<CaseReducers[ReducerName]>,
49-
'fulfilled' | 'rejected' | 'pending' | 'settled'
50-
>
51-
>
52-
: never
53-
}
54-
}
18+
export type AsyncThunkCreatorExposes<
19+
State,
20+
CaseReducers extends CreatorCaseReducers<State>,
21+
> = {
22+
actions: {
23+
[ReducerName in keyof CaseReducers]: CaseReducers[ReducerName] extends AsyncThunkSliceReducerDefinition<
24+
State,
25+
infer ThunkArg,
26+
infer Returned,
27+
infer ThunkApiConfig
5528
>
29+
? AsyncThunk<Returned, ThunkArg, ThunkApiConfig>
30+
: never
31+
}
32+
caseReducers: {
33+
[ReducerName in keyof CaseReducers]: CaseReducers[ReducerName] extends AsyncThunkSliceReducerDefinition<
34+
State,
35+
any,
36+
any,
37+
any
38+
>
39+
? Id<
40+
Pick<
41+
Required<CaseReducers[ReducerName]>,
42+
'fulfilled' | 'rejected' | 'pending' | 'settled'
43+
>
44+
>
45+
: never
5646
}
5747
}
5848

packages/toolkit/src/createSlice.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import type { Action, Reducer, UnknownAction } from 'redux'
22
import type { Selector } from 'reselect'
3+
import type {
4+
AsyncThunkCreator,
5+
AsyncThunkCreatorExposes,
6+
} from './asyncThunkCreator'
37
import type { InjectConfig } from './combineSlices'
48
import type {
59
ActionCreatorWithoutPayload,
@@ -9,13 +13,6 @@ import type {
913
_ActionCreatorWithPreparedPayload,
1014
} from './createAction'
1115
import { createAction } from './createAction'
12-
import type {
13-
AsyncThunk,
14-
AsyncThunkConfig,
15-
AsyncThunkOptions,
16-
AsyncThunkPayloadCreator,
17-
OverrideThunkApiConfigs,
18-
} from './createAsyncThunk'
1916
import { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk'
2017
import type {
2118
ActionMatcherDescriptionCollection,
@@ -145,6 +142,10 @@ export interface SliceReducerCreators<
145142
}
146143
}
147144
>
145+
[ReducerType.asyncThunk]: ReducerCreatorEntry<
146+
AsyncThunkCreator<State>,
147+
AsyncThunkCreatorExposes<State, CaseReducers>
148+
>
148149
}
149150

150151
export type ReducerCreators<

0 commit comments

Comments
 (0)