TypeScript · Senior · Frage 53 von 75
Wie zieht man Routenparameter aus einem Pfad-String-Typ heraus?
type Params<P> = P extends `${string}:${infer K}/${infer R}`
? K | Params<R>
: P extends `${string}:${infer K}` ? K : never;
type T = Params<'/users/:id/posts/:postId'>; // 'id' | 'postId'- 1Rekursive Template Literal Types mit
infer - 2Mit
keyofauf den String-Literaltyp angewendet - 3Nur zur Laufzeit, mit einem regulären Ausdruck
Antwort zeigen
Richtige Antwort: Rekursive Template Literal Types mit infer
Erklärung
Router wie TanStack Router und typisierte Express-Helfer nutzen das, um params.id typsicher zu machen.