diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 248ff47f662..058f4be5054 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -7,7 +7,14 @@ import type { QueryFilters, QueryTypeFilter } from './utils' import type { QueryCache } from './queryCache' import type { MutationCache } from './mutationCache' -export interface Register { +// @ts-expect-error unused arg +export interface Register< + TQueryFnDataOrTData = unknown, + TError = unknown, + TDataOrTVariables = unknown, + TQueryKeyOrTContext = unknown, + TPageParam = never, +> { // defaultError: Error // queryMeta: Record // mutationMeta: Record @@ -85,7 +92,13 @@ export interface InfiniteData { pageParams: unknown[] } -export type QueryMeta = Register extends { +export type QueryMeta< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = never, +> = Register extends { queryMeta: infer TQueryMeta } ? TQueryMeta extends Record @@ -132,7 +145,7 @@ export interface QueryOptions< * Additional payload to be stored on each query. * Use this property to pass information that can be used in other places. */ - meta?: QueryMeta + meta?: QueryMeta /** * Maximum number of pages to store in the data of an infinite query. */ @@ -590,7 +603,12 @@ export type MutationKey = readonly unknown[] export type MutationStatus = 'idle' | 'pending' | 'success' | 'error' -export type MutationMeta = Register extends { +export type MutationMeta< + TData = unknown, + TError = DefaultError, + TVariables = unknown, + TContext = unknown, +> = Register extends { mutationMeta: infer TMutationMeta } ? TMutationMeta @@ -632,7 +650,7 @@ export interface MutationOptions< networkMode?: NetworkMode gcTime?: number _defaulted?: boolean - meta?: MutationMeta + meta?: MutationMeta } export interface MutationObserverOptions<