diff --git a/.changeset/shiny-pans-admire.md b/.changeset/shiny-pans-admire.md new file mode 100644 index 0000000000..32ad2616ab --- /dev/null +++ b/.changeset/shiny-pans-admire.md @@ -0,0 +1,5 @@ +--- +"react-router": patch +--- + +Fix internal type error in useRoute types that surfaces when skipLibCheck is disabled diff --git a/packages/react-router/lib/hooks.tsx b/packages/react-router/lib/hooks.tsx index 854f94e95f..4f6ffb16cb 100644 --- a/packages/react-router/lib/hooks.tsx +++ b/packages/react-router/lib/hooks.tsx @@ -1869,16 +1869,20 @@ type UseRouteResult = Args extends [infer RouteId extends keyof RouteModules] ? UseRoute | undefined : never; +// prettier-ignore type UseRoute = { - handle: RouteId extends keyof RouteModules - ? RouteModules[RouteId]["handle"] - : unknown; - loaderData: RouteId extends keyof RouteModules - ? GetLoaderData | undefined - : unknown; - actionData: RouteId extends keyof RouteModules - ? GetActionData | undefined - : unknown; + handle: + RouteId extends keyof RouteModules ? + RouteModules[RouteId] extends { handle: infer handle } ? handle : + unknown + : + unknown; + loaderData: + RouteId extends keyof RouteModules ? GetLoaderData | undefined : + unknown; + actionData: + RouteId extends keyof RouteModules ? GetActionData | undefined : + unknown; }; export function useRoute(