Przejdź do treści
webtype.orgwebtype.org

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    Nr 278 · 30 września 2026 · Średnia

    Klucze w camelCase

    Zaimplementuj CamelKeys<T>, aby klucze tekstowe w snake_case stały się camelCase. Wartości i klucze nietekstowe pozostają bez zmian.

    01

    Zagadka

    Par 3

    Zagadka

    camelize-keys.ts
    type CamelKey<S extends string> =
      S extends `${infer H}_${infer R}` ? `${H}${Capitalize<CamelKey<R>>}` : S
    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
    • CamelKeys<{ first_name: string; user_id: number }>—
      → { firstName: string; userId: number }
    • CamelKeys<{ plain: true; two_words_here: 1 }>—
      → { plain: true; twoWordsHere: 1 }
    • CamelKeys<{ 0: 'zero'; snake_key: 'x' }>—
      → { 0: 'zero'; snakeKey: 'x' }

    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

    Ten komentarz ukaże się 24 godziny po zamknięciu zagadki.

    Wykorzystuje