Skip to content

Commit e3bc1fe

Browse files
authored
fix #1156: union return values fall back to allowing only single member (#1449)
1 parent 0cd6a2e commit e3bc1fe

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

packages/toolkit/src/createAsyncThunk.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ type GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {
177177
? GetSerializedErrorType
178178
: SerializedError
179179

180-
type MaybePromise<T> = T | Promise<T>
180+
type MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never)
181181

182182
/**
183183
* A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.

packages/toolkit/src/tests/createAsyncThunk.typetest.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,16 @@ const anyAction = { type: 'foo' } as AnyAction
137137
expectType<RejectValue>(unwrapResult(returned))
138138
})()
139139

140+
/**
141+
* regression #1156: union return values fall back to allowing only single member
142+
*/
143+
;(async () => {
144+
const fn = createAsyncThunk('session/isAdmin', async () => {
145+
const response: boolean = false
146+
return response
147+
})
148+
})()
149+
140150
{
141151
interface Item {
142152
name: string

0 commit comments

Comments
 (0)