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];
};- ✓Poprawna odpowiedź: Przez
aspoin, używając template literal - 2To niemożliwe - klucze w typie mapowanym zawsze pozostają te same
- 3Funkcją
rename()ze standardowej biblioteki typów
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.