next.js
46e2114e - feat: generate root params types (#91019)

Commit
18 days ago
feat: generate root params types (#91019) ## Summary Generate type definitions for `next/root-params` from App Router root layouts. This adds a `root-params.d.ts` file under `.next/types` during build, `next dev`, and `next typegen`, so imports from `next/root-params` get accurate autocomplete and type checking. ## What Changed - Collect root param metadata from layout routes in the route types manifest - Generate `.next/types/root-params.d.ts` for `next/root-params` - Emit root param types in `next build/dev/typegen` - Infer `undefined` only when a param is not present in every root layout - Model mixed root param shapes correctly as unions - For example, `string | string[] | undefined` when the same param name appears with different shapes across roots - Remove stale `root-params.d.ts` when the feature is disabled or there are no root params ## Why `next/root-params` already works at runtime, but its types were not tailored to the current app. This change closes that gap by generating declarations from the app's actual root layouts. Required params stay required for single-root apps, while multi-root apps correctly expose params that may be missing or have mixed segment shapes. ## Testing - Added focused unit tests for root param type generation - Added a typecheck e2e test for generated `root-params.d.ts`
Author
Parents
Loading