--- id: queryOptions title: queryOptions --- # 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 }) const queryClient = new QueryClient() const data = queryClient.getQueryData(queryKey) // ^? number | undefined ``` ## Param The query options to tag with the type from `queryFn`. ## Call Signature ```ts function queryOptions(options): Omit, "queryFn"> & object & object ``` Defined in: [query-options.ts:76](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L76) 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 }) const queryClient = new QueryClient() const data = queryClient.getQueryData(queryKey) // ^? number | undefined ``` ### Type Parameters • **TQueryFnData** = `unknown` • **TError** = `Error` • **TData** = `TQueryFnData` • **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters #### options [`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> The query options to tag with the type from `queryFn`. ### Returns `Omit`\<[`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>, `"queryFn"`\> & `object` & `object` The tagged query options. The tagged query options. ### Param The query options to tag with the type from `queryFn`. ## Call Signature ```ts function queryOptions(options): OmitKeyof, "queryFn"> & object & object ``` Defined in: [query-options.ts:108](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L108) 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 }) const queryClient = new QueryClient() const data = queryClient.getQueryData(queryKey) // ^? number | undefined ``` ### Type Parameters • **TQueryFnData** = `unknown` • **TError** = `Error` • **TData** = `TQueryFnData` • **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters #### options [`UnusedSkipTokenOptions`](../../type-aliases/unusedskiptokenoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> The query options to tag with the type from `queryFn`. ### Returns `OmitKeyof`\<[`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>, `"queryFn"`\> & `object` & `object` The tagged query options. The tagged query options. ### Param The query options to tag with the type from `queryFn`. ## Call Signature ```ts function queryOptions(options): CreateQueryOptions & object & object ``` Defined in: [query-options.ts:140](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L140) 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 }) const queryClient = new QueryClient() const data = queryClient.getQueryData(queryKey) // ^? number | undefined ``` ### Type Parameters • **TQueryFnData** = `unknown` • **TError** = `Error` • **TData** = `TQueryFnData` • **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters #### options [`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> The query options to tag with the type from `queryFn`. ### Returns [`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` & `object` The tagged query options. The tagged query options. ### Param The query options to tag with the type from `queryFn`.