How does express extract the route parameters in TypeScript, such that we can read them off the request.params
object in a typesafe way? It's quite ingenious, and uses template literal types, conditional types, and the infer
keyword to recursively process the parameter names out of the path string and apply required and optional parameters to the params object in route handlers. Here are those types extracted into a CodeSandbox. If you open it on CodeSandbox you can see the intellisense at work!