Use skipToken for type-safe query disabling in TanStack Query
8/17/2025
#tanstack#react#typescript
When using useQuery
, you may want to disable fetching until a condition is met. While enabled: false
works, it doesn't narrow types inside your queryFn
—TypeScript still sees the parameter as possibly undefined.
For a type-safe alternative, use skipToken
:
import { useQuery, skipToken } from '@tanstack/react-query';
function Todos() {
const [filter, setFilter] = React.useState<string | undefined>();
const { data } = useQuery({
queryKey: ['todos', filter],
// Type-safe: skip query when `filter` is undefined
queryFn: filter ? () => fetchTodos(filter) : skipToken,
});
return (
<div>
<FiltersForm onApply={setFilter} />
{data && <TodosTable data={data} />}
</div>
);
}
More Dev Tips
Discover more tips and tricks to level up your development skills
Start your scalable and production-ready SaaS today
Save endless hours of development time and focus on what's important for your customers with our SaaS starter kits for Next.js, Nuxt 3 and SvelteKit
Get startedStay up to date
Sign up for our newsletter and we will keep you updated on everything going on with supastarter.