Blog>
Snippets

Configuring QueryClient with TypeScript

Demonstrate setting up a QueryClient instance with global defaults typed for better code predictability and maintainability.
import { QueryClient, DefaultOptions } from '@tanstack/react-query';
Importing QueryClient and DefaultOptions from the react-query library.
interface CustomQueryConfig extends DefaultOptions {
  queries: {
    retry: boolean;
    refetchOnWindowFocus: boolean;
  };
}
Defining an interface that extends the default options for more type safety.
const customOptions: CustomQueryConfig = {
  queries: {
    retry: false, // Avoid retrying failed queries
    refetchOnWindowFocus: false, // Do not refetch on window focus by default
  },
};
Setting up custom global defaults for the QueryClient.
const queryClient = new QueryClient({
  defaultOptions: customOptions,
});
Creating a new QueryClient instance with the custom default options.
export default queryClient;
Exporting the configured QueryClient instance for use throughout the application.