Напиши тип Middle Дженерики обновлено

Тип после mapValues

Вопрос

Какой тип у out? Впишите тип.

function mapValues<T, U>(o: Record<string, T>, f: (v: T) => U): Record<string, U> {
  const res: Record<string, U> = {};
  for (const k in o) res[k] = f(o[k]);
  return res;
}
const out = mapValues({ a: 1, b: 2 }, n => String(n)); // out: /* ? */

Попробуйте сами

Напишите тип, как написали бы в коде.

Показать ответ и разбор

Коротко

Правильный тип: Record<string, string>. T выводится из значений объекта как number.

Правильный тип

Record<string, string>

Разбор

T выводится из значений объекта как number. Колбэк получает n: number и возвращает String(n), то есть string, отсюда U = string. Результат Record<string, U> становится Record<string, string>.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме