Use names that match the value’s real meaning and align with established/public API conventions.
Practical rules:
setQueries(queries) and callers already use “queries”, keep internal variables consistent (even if “options” feels more precise).injectX when using inject(...)).client vs queryClient when it mirrors QueryClientProvider client={...} and the corresponding destructuring examples.experimental_/unstable_ in the name when that’s the project’s convention.Examples:
// Semantic rename with deprecation
export interface MutationState<TData, TError, TVariables, TScope = unknown> {
/** @deprecated Use `scope` instead. */
context: TScope | undefined
scope: TScope | undefined
}
// Keep naming consistent with public API
// useQueries({ queries }) ... setQueries(queries)
const defaultedQueries = /* keep `queries` naming */
// Angular injection-context signaling
export function injectIsFetching(filters?: QueryFilters, queryClient?: QueryClient) {
// uses `inject(...)` internally; name reflects requirement
}
// Provider-aligned naming
useQuery({
queryKey,
queryFn: ({ client, signal }) => {/* ... */},
})
// Stability signaling
experimental_promise: Promise<TData>
Enter the URL of a public GitHub repository