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 {
77} from './createAsyncThunk'
88import { createAsyncThunk } from './createAsyncThunk'
99import 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'
1116import { 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+ }
1258
1359export interface AsyncThunkSliceReducerConfig <
1460 State ,
Original file line number Diff line number Diff line change 11import type { Action , UnknownAction , Reducer } from 'redux'
22import type { Selector } from 'reselect'
3- import type {
4- AsyncThunkCreator ,
5- AsyncThunkSliceReducerDefinition ,
6- } from './asyncThunkCreator'
73import type {
84 ActionCreatorWithoutPayload ,
95 PayloadAction ,
@@ -12,7 +8,6 @@ import type {
128 _ActionCreatorWithPreparedPayload ,
139} from './createAction'
1410import { createAction } from './createAction'
15- import type { AsyncThunk } from './createAsyncThunk'
1611import type {
1712 ActionMatcherDescriptionCollection ,
1813 CaseReducer ,
@@ -135,36 +130,6 @@ export interface SliceReducerCreators<
135130 }
136131 }
137132 >
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- >
168133}
169134
170135export type ReducerCreators <
You can’t perform that action at this time.
0 commit comments