Przejdź do treści
webtype.orgwebtype.org

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    Nr 261 · 13 września 2026 · Średnia

    Wersaliki tytułowe

    Zaimplementuj TitleCase<S>, aby każde oddzielone spacją słowo w S dostało wielką pierwszą literę.

    01

    Spróbuj rozwiązać samodzielnie

    Par 3

    Zagadka

    title-case.ts
    Podejście 1 z 3Jeszcze nie sprawdzone

    Zastąp ??? — rozwiązanie sprawdzamy przypadkami poniżej. Tab wcina; naciśnij Escape, a potem Tab, by wyjść fokusem.

    Testy

    3
    • TitleCase<'hello world'>—
      → 'Hello World'
    • TitleCase<'foo'>—
      → 'Foo'
    • TitleCase<'a b c'>—
      → 'A B C'

    Jak oceniamy test Dokładna równość typów, nie przypisywalność — przecięcie to nie to samo co spłaszczony obiekt.

    Jak poszło innym

    Tę zagadkę rozwiązało jak dotąd mniej niż 5 osób. Rozkład pojawi się, gdy próbka będzie na tyle duża, by coś znaczyć.

    Gra na krótkim dystansie

    Najmniej znaków

    Nie ma jeszcze publicznych wyników.

    Archiwum
    02

    Rozwiązanie z komentarzem

    Opublikowano 14 września 2026

    Rozwiązanie

    type TitleCase<S extends string> =
      S extends `${infer W} ${infer Rest}` ? `${Capitalize<W>} ${TitleCase<Rest>}` : Capitalize<S>

    Najczęstsza błędna odpowiedź

    type TitleCase<S extends string> = Capitalize<S>

    Capitalize zamienia na wielką literę tekst, jeden — pierwszy znak całości i nic więcej. "hello world" staje się "Hello world". Wbudowany typ nie ma pojęcia słowa, więc wszystko, co ma kształt słowa, musisz najpierw znaleźć sam.

    Linia po linii

    1. `${infer W} ${infer Rest}`

      To dosłowna spacja między symbolami zastępczymi czyni z tego dzielnik słów. Wnioskowanie zatrzymuje się na pierwszej znalezionej, więc W to zawsze jedno słowo.

    2. : Capitalize<S>

      Przypadek bazowy to ostatnie słowo i jest jedynym miejscem, gdzie Capitalize trafia na cały pozostały tekst — bo wtedy cały pozostały tekst *jest* jednym słowem.

    Do zapamiętania

    Wbudowane typy tekstowe działają na całych tekstach. Słowa, segmenty i ścieżki to rzeczy, które najpierw wykrawasz wzorcami szablonowymi, a dopiero potem przekazujesz dalej.

    Wykorzystuje