TypeScript · Senior · Запитання 9 з 75
Що поверне Split<'a/b/c'>?
type Split<S extends string> =
S extends `${infer Head}/${infer Rest}`
? [Head, ...Split<Rest>]
: [S];- ✓Правильна відповідь:
['a', 'b', 'c'] - 2
string[](загальний тип) - 3
['a/b/c'](без розбору)
Пояснення
infer усередині шаблонного літерала розбирає рядок: Head захоплює частину до першого /, Rest - решту. Рекурсія й варіативні кортежі збирають результат. Так типізують параметри маршрутів на кшталт /users/:id.