Skip to content

Commit 45c8b9e

Browse files
committed
guard against strange behaviour of OverloadedReturnType in pre 5.3 versions
1 parent 0f01293 commit 45c8b9e

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

packages/toolkit/src/tsHelpers.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,18 +224,20 @@ export function asSafePromise<Resolved, Rejected>(
224224
return promise.catch(fallback) as SafePromise<Resolved | Rejected>
225225
}
226226

227+
type NotUnknown<T> = IsUnknown<T, never, T>
228+
227229
export type OverloadedReturnType<Fn extends (...args: any[]) => any> =
228230
Fn extends {
229-
(...args: any): infer R1
230-
(...args: any): infer R2
231-
(...args: any): infer R3
231+
(...args: any[]): infer R1
232+
(...args: any[]): infer R2
233+
(...args: any[]): infer R3
232234
}
233-
? R1 | R2 | R3
235+
? NotUnknown<R1> | NotUnknown<R2> | NotUnknown<R3>
234236
: Fn extends {
235-
(...args: any): infer R1
236-
(...args: any): infer R2
237+
(...args: any[]): infer R1
238+
(...args: any[]): infer R2
237239
}
238-
? R1 | R2
240+
? NotUnknown<R1> | NotUnknown<R2>
239241
: ReturnType<Fn>
240242

241243
export type Increment<

0 commit comments

Comments
 (0)