diff --git a/etc/redux-toolkit.api.md b/etc/redux-toolkit.api.md index 87ba8f4121..fa63fde732 100644 --- a/etc/redux-toolkit.api.md +++ b/etc/redux-toolkit.api.md @@ -194,21 +194,17 @@ export type SliceActionCreator
= PayloadActionCreator
;
// @public
export type SliceCaseReducers> = ACR & {
- [P in keyof ACR]: ACR[P] extends {
- reducer(s: S, action?: {
- payload: infer O;
- }): any;
+ [T in keyof ACR]: ACR[T] extends {
+ reducer(s: S, action?: infer A): any;
} ? {
- prepare(...a: never[]): {
- payload: O;
- };
+ prepare(...a: never[]): Omit;
} : {};
};
diff --git a/src/createSlice.ts b/src/createSlice.ts
index 6dfeefcdb4..58275d5033 100644
--- a/src/createSlice.ts
+++ b/src/createSlice.ts
@@ -12,6 +12,7 @@ import {
ActionReducerMapBuilder,
executeReducerBuilderCallback
} from './mapBuilders'
+import { Omit } from './tsHelpers'
/**
* An action creator atttached to a slice.
@@ -110,7 +111,7 @@ export type CaseReducerWithPrepare
> = ACR &
{
- [P in keyof ACR]: ACR[P] extends {
- reducer(s: S, action?: { payload: infer O }): any
+ [T in keyof ACR]: ACR[T] extends {
+ reducer(s: S, action?: infer A): any
}
? {
- prepare(...a: never[]): { payload: O }
+ prepare(...a: never[]): Omit
}
: {}
}
diff --git a/src/tsHelpers.ts b/src/tsHelpers.ts
index bbde02b85b..d5dcda749f 100644
--- a/src/tsHelpers.ts
+++ b/src/tsHelpers.ts
@@ -87,3 +87,5 @@ type UnionToIntersection = (U extends any
: never) extends ((k: infer I) => void)
? I
: never
+
+export type Omit