TypeScript · Middle · Pytanie 28 z 75

Jak zmienić nazwy kluczy w typie mapowanym?

type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
};

Wyjaśnienie

Key remapping (TS 4.1+): Getters<{ name: string }> → { getName: () => string }. Jeśli wyrażenie po as daje never, klucz jest pomijany - tak filtruje się właściwości według typu wartości. string & K jest potrzebne, bo klucze mogą być symbolami lub liczbami.

Do poczytania

Błąd w pytaniu

TypeScript · Middle · pytanie 28

Sprawdź się

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

Rozwiąż ten test