TypeScript · Senior · Запитання 53 з 75
Як витягти параметри маршруту з рядкового типу шляху?
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'- ✓Правильна відповідь: Рекурсивними шаблонними літеральними типами й
infer - 2Лише в рантаймі через регулярні вирази
- 3Через
keyofвід рядка
Пояснення
Роутери на кшталт TanStack Router і типізовані хелпери для Express використовують це, щоб params.id був типобезпечним.