Skip to content

Commit aaac0cb

Browse files
committed
fix: InferLoaderData not working when not all generics are inferred
1 parent c64971a commit aaac0cb

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/createLoader.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ export const createLoader = <
5454
extend: function <
5555
QRUb extends readonly Types.UseQueryResult<unknown>[],
5656
Pb extends unknown = P,
57-
Rb = R,
57+
Rb = QRUb extends unknown
58+
? R
59+
: Types.MakeDataRequired<QRUb>,
5860
Ab = A
5961
>({
6062
queries,

src/types.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,15 @@ export type ComponentWithLoaderData<
6464
> = (props: P, loaderData: R) => ReactElement;
6565

6666
export type InferLoaderData<T> = T extends Loader<
67-
any | never,
67+
any,
6868
infer X,
69-
any | never
69+
any
7070
>
7171
? X
72+
: T extends Loader<never, infer Y, any>
73+
? Y
74+
: T extends Loader<any, infer Z, never>
75+
? Z
7276
: never;
7377

7478
export type Component<P extends Record<string, any>> = (

0 commit comments

Comments
 (0)