Код 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
new Map<T[K], T>(): явный параметр типа, иначе выведетсяMap<any, any>.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Типизированный groupBy по ключу объекта
Следующий вопрос
memoize с сохранением сигнатуры