Router Docs
Core Routing
Navigation & URL State
Data & Rendering
Router Configuration
Integrations
AI/LLM: This documentation page is available in plain markdown format at/router/latest/docs/eslint/create-route-property-order.md
ESLint
Ensure correct order of inference sensitive properties for createRoute functions
For the following functions, the property order of the passed in object matters due to type inference:
- createRoute
- createFileRoute
- createRootRoute
- createRootRouteWithContext
The correct property order is as follows
- params, validateSearch
- loaderDeps, search.middlewares, ssr
- context
- beforeLoad
- loader
- onEnter, onStay, onLeave, head, scripts, headers, remountDeps
All other properties are insensitive to the order as they do not depend on type inference.
Rule Details#
Examples of incorrect code for this rule:
src/routes/path.tsx
/* eslint "@tanstack/router/create-route-property-order": "warn" */
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/path')({
loader: async ({ context }) => {
await context.queryClient.query({
...getQueryOptions(context.hello),
staleTime: 'static',
})
},
beforeLoad: () => ({ hello: 'world' }),
})Examples of correct code for this rule:
src/routes/path.tsx
/* eslint "@tanstack/router/create-route-property-order": "warn" */
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/path')({
beforeLoad: () => ({ hello: 'world' }),
loader: async ({ context }) => {
await context.queryClient.query({
...getQueryOptions(context.hello),
staleTime: 'static',
})
},
})Attributes#
- ✅ Recommended
- 🔧 Fixable