TypeScript · Senior · Запитання 9 з 75

Що поверне Split<'a/b/c'>?

type Split<S extends string> =
  S extends `${infer Head}/${infer Rest}`
    ? [Head, ...Split<Rest>]
    : [S];

Пояснення

infer усередині шаблонного літерала розбирає рядок: Head захоплює частину до першого /, Rest - решту. Рекурсія й варіативні кортежі збирають результат. Так типізують параметри маршрутів на кшталт /users/:id.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 9

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест