TypeScript · Senior · Запитання 69 з 75

Як типізувати функцію, що зберігає точні ключі переданого об'єкта, перетворюючи значення?

function mapValues<T extends object, R>(obj: T, fn: (v: T[keyof T]) => R): { [K in keyof T]: R } { /* ... */ }

Пояснення

У тих, хто викликає, лишаються автодоповнення й перевірка друкарських помилок у ключах. Зауважте, що Object.entries усередині все одно втрачає типи ключів і потребує приведення.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 69

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест