Q70: How do you implement a simple string parameter parser using Template Literals and `infer`?
Template literal types can be combined with infer to parse and extract sub-strings from structured patterns like route templates.
Extracting Route Params via Type Recursion
type ExtractRouteParams<Path extends string> =
Path extends `${string}/:${infer Param}/${infer Rest}`
? Param | ExtractRouteParams<`/${Rest}`>
: Path extends `${string}/:${infer Param}`
? Param
: never;
type Params = ExtractRouteParams<"/users/:userId/posts/:postId">;
// Output Type: "userId" | "postId"💡 Recursively parses path strings to extract parameter names prefixed with colons.
Key Takeaways
- Demonstrates type-level string parsing and parameter extraction.