File: queryoptions.md | Updated: 11/15/2025
Search...
+ K
Auto
Docs Examples GitHub Contributors
Docs Examples GitHub Contributors
Docs Examples GitHub Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Docs Examples Github Contributors
Maintainers Partners Support Learn StatsBETA Discord Merch Blog GitHub Ethos Brand Guide
Documentation
Framework
Angular
Version
Latest
Search...
+ K
Menu
Getting Started
Guides & Concepts
API Reference
ESLint
Examples
Framework
Angular
Version
Latest
Menu
Getting Started
Guides & Concepts
API Reference
ESLint
Examples
On this page
Copy Markdown
Function: queryOptions()
========================
Allows to share and re-use query options in a type-safe way.
The queryKey will be tagged with the type from queryFn.
Example
ts
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
The query options to tag with the type from queryFn.
ts
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & object
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & object
Defined in: query-options.ts:76
Allows to share and re-use query options in a type-safe way.
The queryKey will be tagged with the type from queryFn.
Example
ts
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
• TQueryFnData = unknown
• TError = Error
• TData = TQueryFnData
• TQueryKey extends readonly unknown[] = readonly unknown[]
DefinedInitialDataOptions <TQueryFnData, TError, TData, TQueryKey>
The query options to tag with the type from queryFn.
Omit<CreateQueryOptions <TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & object
The tagged query options.
The tagged query options.
The query options to tag with the type from queryFn.
ts
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): OmitKeyof<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & object
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): OmitKeyof<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & object
Defined in: query-options.ts:108
Allows to share and re-use query options in a type-safe way.
The queryKey will be tagged with the type from queryFn.
Example
ts
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
• TQueryFnData = unknown
• TError = Error
• TData = TQueryFnData
• TQueryKey extends readonly unknown[] = readonly unknown[]
UnusedSkipTokenOptions <TQueryFnData, TError, TData, TQueryKey>
The query options to tag with the type from queryFn.
OmitKeyof<CreateQueryOptions <TQueryFnData, TError, TData, TQueryKey>, "queryFn"> & object & object
The tagged query options.
The tagged query options.
The query options to tag with the type from queryFn.
ts
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object & object
function queryOptions<TQueryFnData, TError, TData, TQueryKey>(options): CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & object & object
Defined in: query-options.ts:140
Allows to share and re-use query options in a type-safe way.
The queryKey will be tagged with the type from queryFn.
Example
ts
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
const { queryKey } = queryOptions({
queryKey: ['key'],
queryFn: () => Promise.resolve(5),
// ^? Promise<number>
})
const queryClient = new QueryClient()
const data = queryClient.getQueryData(queryKey)
// ^? number | undefined
• TQueryFnData = unknown
• TError = Error
• TData = TQueryFnData
• TQueryKey extends readonly unknown[] = readonly unknown[]
UndefinedInitialDataOptions <TQueryFnData, TError, TData, TQueryKey>
The query options to tag with the type from queryFn.
CreateQueryOptions <TQueryFnData, TError, TData, TQueryKey> & object & object
The tagged query options.
The tagged query options.
The query options to tag with the type from queryFn.
[###### Want to Skip the Docs?
Query.gg - The Official React Query Course
\
“If you’re serious about *really* understanding React Query, there’s no better way than with query.gg”—Tanner Linsley
Learn More](https://query.gg/?s=tanstack)
