TypeScript · Middle · Запитання 28 з 75
Як перейменувати ключі в mapped type?
type Getters<T> = {
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
};- ✓Правильна відповідь: Через
asпісляinіз шаблонним літералом - 2Це неможливо - ключі в mapped type завжди лишаються попередніми
- 3Через функцію
rename()у стандартній бібліотеці типів
Пояснення
Key remapping (TS 4.1+): Getters<{ name: string }> → { getName: () => string }. Якщо вираз після as дає never, ключ виключається - так фільтрують властивості за типом значення. string & K потрібен, бо ключі можуть бути символами або числами.