Start here. This is the direct spoken answer to practice first.
Overview
Route inputs are asynchronous boundaries, and their TypeScript types do not make untrusted URL values safe.
In current App Router code, params and page searchParams are Promises, so a Server Component awaits them and a Client Component can unwrap supported promises with React's use. Dynamic Route Handler context also exposes Promise-based params, while cookies() and headers() are asynchronous request APIs. Next.js can generate helpers such as PageProps, LayoutProps, and RouteContext from the route structure.