#9616Medium

Parse URL Params

You're required to implement a type-level parser to parse URL params string into an Union. Learn conditional types with `infer` in this medium-level challenge on TypeScriptPro.

In this medium-level challenge, you'll implement a type-level parser that extracts URL parameter names (prefixed with :) from a URL path string and produces a union of those parameter names.

Challenge Instructions: Parse URL Params

Medium

You're required to implement a type-level parser to parse URL params string into an Union.

ParseUrlParams<':id'> // id
ParseUrlParams<'posts/:id'> // id
ParseUrlParams<'posts/:id/:user'> // id | user

Change the following code to make the test cases pass (no type check errors).

Loading...

Detailed Explanation

type ParseUrlParams<T extends string> =
  T extends `${string}:${infer Param}/${infer Rest}`
    ? Param | ParseUrlParams<Rest>
    : T extends `${string}:${infer Param}`
      ? Param
      : never

How it works:

This challenge helps you understand recursive template literal type parsing with infer and how to apply this concept in real-world scenarios like type-safe routing.

This challenge is originally from here.

Share this challenge

Learn the Concepts

Join early, learn faster.

Be the first to access the course, unlock exclusive launch bonuses, and get special early-bird pricing before anyone else.

No spam, unsubscribe at any time. We respect your privacy.

Limited Availability

Only 27 Spots left

Early Access

Get 1 month early access

>75% Off

Pre-Launch discount