Ограничьте generic объектами с id и возвращайте массив типа этого поля, убирая повторы через Set.
Напишите и типизируйте функцию, которая принимает массив объектов и возвращает массив уникальных `id`.
Ограничьте 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' различаются; если их нужно считать одинаковыми, нормализация должна быть отдельным явным правилом.