用途:说明 TanStack Router 的类型推断哲学与正确用法,帮助避免 AI 代理常见的过度标注、类型断言和跨框架误用问题。
主要能力与规则:路由参数、搜索参数、上下文和 loader 数据都通过路由树自动推断,因此不要对已推断值使用 as Type、显式泛型参数、satisfies 或类型注解,断言会掩盖真实类型错误并破坏推断链。唯一必需的注解是 Register 模块声明:在 src/router.tsx 中创建 router 后,用 declare module '@tanstack/react-router' 声明 interface Register { router: typeof router },否则 Link、useNavigate、useSearch 等顶层导出没有类型安全。
用法要点:在 hooks 和 Link 上用 from 收窄类型,避免返回所有路由的联合类型;跨路由共享组件用 strict: false;代码分割文件用 getRouteApi 而非导入 Route;大型路由树用对象语法调用 addChildren 提升 TypeScript 性能;Link 选项对象用 as const satisfies LinkProps,不要直接声明 LinkProps 变量类型;自定义组件可用 ValidateLinkOptions、ValidateNavigateOptions、ValidateRedirectOptions 等类型工具。
限制与注意:不要与 Next.js 或 React Router 混淆,没有 getServerSideProps、useSearchParams()、react-router-dom 的 useLoaderData();类型检查不等于运行时 schema 传播,字段增删需沿存储、校验、处理器输出、loader 数据和 UI 追踪,并补充运行时断言与路由级测试。资料未提供收费、平台或效果信息。