File tree Expand file tree Collapse file tree 2 files changed +47
-36
lines changed Expand file tree Collapse file tree 2 files changed +47
-36
lines changed Original file line number Diff line number Diff line change @@ -7,8 +7,54 @@ import type {
7
7
} from './createAsyncThunk'
8
8
import { createAsyncThunk } from './createAsyncThunk'
9
9
import type { CaseReducer } from './createReducer'
10
- import type { ReducerCreator , ReducerDefinition } from './createSlice'
10
+ import type {
11
+ CreatorCaseReducers ,
12
+ ReducerCreator ,
13
+ ReducerCreatorEntry ,
14
+ ReducerDefinition ,
15
+ } from './createSlice'
11
16
import { ReducerType } from './createSlice'
17
+ import type { Id } from './tsHelpers'
18
+
19
+ declare module '@reduxjs/toolkit' {
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
+ }
55
+ >
56
+ }
57
+ }
12
58
13
59
export interface AsyncThunkSliceReducerConfig <
14
60
State ,
Original file line number Diff line number Diff line change 1
1
import type { Action , UnknownAction , Reducer } from 'redux'
2
2
import type { Selector } from 'reselect'
3
- import type {
4
- AsyncThunkCreator ,
5
- AsyncThunkSliceReducerDefinition ,
6
- } from './asyncThunkCreator'
7
3
import type {
8
4
ActionCreatorWithoutPayload ,
9
5
PayloadAction ,
@@ -12,7 +8,6 @@ import type {
12
8
_ActionCreatorWithPreparedPayload ,
13
9
} from './createAction'
14
10
import { createAction } from './createAction'
15
- import type { AsyncThunk } from './createAsyncThunk'
16
11
import type {
17
12
ActionMatcherDescriptionCollection ,
18
13
CaseReducer ,
@@ -135,36 +130,6 @@ export interface SliceReducerCreators<
135
130
}
136
131
}
137
132
>
138
- [ ReducerType . asyncThunk ] : ReducerCreatorEntry <
139
- AsyncThunkCreator < State > ,
140
- {
141
- actions : {
142
- [ ReducerName in keyof CaseReducers ] : CaseReducers [ ReducerName ] extends AsyncThunkSliceReducerDefinition <
143
- State ,
144
- infer ThunkArg ,
145
- infer Returned ,
146
- infer ThunkApiConfig
147
- >
148
- ? AsyncThunk < Returned , ThunkArg , ThunkApiConfig >
149
- : never
150
- }
151
- caseReducers : {
152
- [ ReducerName in keyof CaseReducers ] : CaseReducers [ ReducerName ] extends AsyncThunkSliceReducerDefinition <
153
- State ,
154
- any ,
155
- any ,
156
- any
157
- >
158
- ? Id <
159
- Pick <
160
- Required < CaseReducers [ ReducerName ] > ,
161
- 'fulfilled' | 'rejected' | 'pending' | 'settled'
162
- >
163
- >
164
- : never
165
- }
166
- }
167
- >
168
133
}
169
134
170
135
export type ReducerCreators <
You can’t perform that action at this time.
0 commit comments