TypeScript · Senior · Pytanie 9 z 75

Co zwraca Split<'a/b/c'>?

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

Wyjaśnienie

infer wewnątrz template literal parsuje string: Head przechwytuje część przed pierwszym /, Rest - resztę. Rekurencja i variadic tuples składają wynik. Tak typuje się parametry tras typu /users/:id.

Do poczytania

Błąd w pytaniu

TypeScript · Senior · pytanie 9

Sprawdź się

Rozwiąż test TypeScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test