From 1c3a05263c61de697361a70080eca316a69b4639 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 10 Sep 2026 08:13:37 +0900 Subject: [PATCH 1/2] test(vue-query/useQuery): add type test for inferring the result type from a generic 'queryFn' --- .../src/__tests__/useQuery.test-d.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index a9b0125ab0..c92c6947d9 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -153,6 +153,26 @@ describe('useQuery', () => { }) }) + describe('generic queryFn', () => { + it('should infer the result type from a generic query function', () => { + const key = queryKey() + + function queryFn(): Promise { + return Promise.resolve({} as T) + } + + const query = reactive( + useQuery({ + queryKey: key, + queryFn: () => queryFn(), + }), + ) + + expectTypeOf(query.data).toEqualTypeOf() + expectTypeOf(query.error).toEqualTypeOf() + }) + }) + describe('generic queryKey inference (#8199)', () => { it('should not error when wrapping useQuery in a composable that propagates a generic type to the queryKey', () => { const basket = { fruit: 'apple', vegetable: 'broccoli' } as const From b0b65812da348945052b61e86cf121dc8381c4c1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 10 Sep 2026 08:13:37 +0900 Subject: [PATCH 2/2] test(svelte-query/createQuery): add type test for inferring the result type from a generic 'queryFn' --- .../tests/createQuery/createQuery.test-d.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/svelte-query/tests/createQuery/createQuery.test-d.ts b/packages/svelte-query/tests/createQuery/createQuery.test-d.ts index 8b6590b334..603d89a5f1 100644 --- a/packages/svelte-query/tests/createQuery/createQuery.test-d.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.test-d.ts @@ -96,4 +96,22 @@ describe('createQuery', () => { }) }) }) + + describe('generic queryFn', () => { + it('should infer the result type from a generic query function', () => { + const key = queryKey() + + function queryFn(): Promise { + return Promise.resolve({} as T) + } + + const query = createQuery(() => ({ + queryKey: key, + queryFn: () => queryFn(), + })) + + expectTypeOf(query.data).toEqualTypeOf() + expectTypeOf(query.error).toEqualTypeOf() + }) + }) })