Options inference broken when using Omit<UseQueryOptions<IUser, Error, IUser>, 'queryKey'> #8401
Open
Description
Describe the bug
Description:
When using Omit<UseQueryOptions<IUser, Error, IUser>, 'queryKey'>
for defining options in a wrapper function, TypeScript fails to infer the correct types for properties inside options. For example, the select option does not show any type inference.
Code Example
import {
useQuery,
UseQueryOptions,
} from '@tanstack/vue-query';
import { Ref, ref } from 'vue';
interface IUser {
name: string;
age: number;
address: string;
}
interface UseRequstQuery {
url: Ref<string>;
options: Omit<UseQueryOptions<IUser, Error, IUser>, 'queryKey'>;
}
export const useRequstUser = ({
url,
options
}: UseRequstQuery) => {
return useQuery<IUser, Error>({
queryKey: ['requestUser', url],
queryFn: async () => {
return await Promise.resolve({
name: 'danny',
age: 30,
address: `address: ${url.value}`
});
},
...options
});
};
const address = ref('https://xxxx.com');
const user = useRequstUser({
url: address,
options: {
sele // No type inference here
}
});
Your minimal, reproducible example
Steps to reproduce
/
Expected behavior
The options parameter in useRequstUser
should provide type inference for fields like select
How often does this bug happen?
None
Screenshots or Videos
No response
Platform
macOS
Chrome
Tanstack Query adapter
None
TanStack Query version
5.62.2
TypeScript version
No response
Additional context
No response