diff --git a/packages/toolkit/src/query/react/namedHooks.ts b/packages/toolkit/src/query/react/namedHooks.ts index ae146cf4cf..7a21b993f4 100644 --- a/packages/toolkit/src/query/react/namedHooks.ts +++ b/packages/toolkit/src/query/react/namedHooks.ts @@ -6,26 +6,37 @@ import type { QueryDefinition, } from '@reduxjs/toolkit/query' +type QueryHookNames = { + [K in keyof Definitions as Definitions[K] extends { + type: DefinitionType.query + } + ? `use${Capitalize}Query` + : never]: UseQuery< + Extract> + > +} + +type LazyQueryHookNames = { + [K in keyof Definitions as Definitions[K] extends { + type: DefinitionType.query + } + ? `useLazy${Capitalize}Query` + : never]: UseLazyQuery< + Extract> + > +} + +type MutationHookNames = { + [K in keyof Definitions as Definitions[K] extends { + type: DefinitionType.mutation + } + ? `use${Capitalize}Mutation` + : never]: UseMutation< + Extract> + > +} + export type HooksWithUniqueNames = - keyof Definitions extends infer Keys - ? Keys extends string - ? Definitions[Keys] extends { type: DefinitionType.query } - ? { - [K in Keys as `use${Capitalize}Query`]: UseQuery< - Extract> - > - } & - { - [K in Keys as `useLazy${Capitalize}Query`]: UseLazyQuery< - Extract> - > - } - : Definitions[Keys] extends { type: DefinitionType.mutation } - ? { - [K in Keys as `use${Capitalize}Mutation`]: UseMutation< - Extract> - > - } - : never - : never - : never + QueryHookNames & + LazyQueryHookNames & + MutationHookNames