Код Junior Дженерики обновлено

keyBy: индекс по id с проверкой дублей

Условие

Напиши keyBy(items, key): строит Map из значения поля key в элемент. Если значение повторяется, функция бросает Error с сообщением duplicate key: <значение>. Тип ключа Map должен быть ровно T[K].

Тесты сравнивают результат через Object.fromEntries, поэтому в заготовке есть обёртка run.

Примеры

run([{"id":"a","v":1}, {"id":"b","v":2}]) // {"a":{"id":"a","v":1},"b":{"id":"b","v":2}}
run([]) // {}
run([{"id":"a","v":1}, {"id":"a","v":2}]) // "duplicate key: a"

Как подойти

Подсказки: 1
  1. new Map<T[K], T>(): явный параметр типа, иначе выведется Map<any, any>.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

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