Files
type-level-demo/08-type-programming/main.ts
T
2026-07-17 10:28:20 +02:00

14 lines
342 B
TypeScript

type ParseUrlParams<Url> = Url extends `${infer Start}/${infer Rest}`
? ParseUrlParams<Start> & ParseUrlParams<Rest>
: Url extends `{${infer Param}}`
? { [P in Param]: string }
: {};
function navigate<P extends string>(path: P, params: ParseUrlParams<P>) {
// ...
}
function main() {
navigate("/foo/bar", { foo: "asd" });
}