vercel / next.js

The React Framework
https://nextjs.org
MIT License
125.09k stars 26.72k forks source link

typedRoutes don't recognize parameter on rewritten url if preceded by path character #66876

Open tinleym opened 3 months ago

tinleym commented 3 months ago

Link to the code that reproduces this issue

https://codesandbox.io/p/devbox/elastic-lucy-jfpczm?file=%2F.next%2Ftypes%2Flink.d.ts

To Reproduce

The error is in the generated types file.

Current vs. Expected behavior

If rewriting /@:username to /user/:username, I'd expect a generated type like /@${SafeSlug<T>} but instead I get /@[username].

Provide environment information

Operating System:
  Platform: darwin
  Arch: x64
  Version: Darwin Kernel Version 21.6.0: Mon Feb 19 20:24:34 PST 2024; root:xnu-8020.240.18.707.4~1/RELEASE_X86_64
  Available memory (MB): 16384
  Available CPU cores: 8
Binaries:
  Node: 22.2.0
  npm: 10.7.0
  Yarn: N/A
  pnpm: 7.33.7
Relevant Packages:
  next: 14.2.0 // There is a newer version (14.2.4) available, upgrade recommended! 
  eslint-config-next: 14.2.0
  react: 18.3.1
  react-dom: 18.3.1
  typescript: 5.4.5
Next.js Config:
  output: N/A

Which area(s) are affected? (Select all that apply)

TypeScript

Which stage(s) are affected? (Select all that apply)

next dev (local)

Additional context

No response