Nr 278 · 30 września 2026 · Średnia
Klucze w camel Case
Zaimplementuj CamelKeys<T>, aby klucze tekstowe w snake_case stały się camelCase. Wartości i klucze nietekstowe pozostają bez zmian.
01
Zagadka
Par 3Zagadka
camelize-keys.tstype 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
3CamelKeys<{ 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ówNie ma jeszcze publicznych wyników.
02
Rozwiązanie z komentarzem
Ten komentarz ukaże się 24 godziny po zamknięciu zagadki.

