Напишите и типизируйте функцию, которая принимает массив объектов и возвращает массив уникальных `id`.

Ограничьте generic объектами с id и возвращайте массив типа этого поля, убирая повторы через Set.

Короткий ответ

Что ответить на собеседовании

Ограничьте generic объектами с id и возвращайте массив типа этого поля, убирая повторы через Set.

Подробный разбор

Ответ с пояснениями

Ограничьте generic объектами с id и возвращайте массив типа этого поля, убирая повторы через Set.

Пример сохраняет union типа идентификатора и не изменяет входной массив.

function uniqueIds<T extends { id: string | number }>(items: readonly T[]): T['id'][] {
  return [...new Set<T['id']>(items.map(item => item.id))];
}

Порядок соответствует первому появлению каждого id. Число 1 и строка '1' различаются; если их нужно считать одинаковыми, нормализация должна быть отдельным явным правилом.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее