Сделайте так, чтобы функция принимала только массив.

Для runtime-проверки JavaScript используйте Array.isArray, а для статического контракта TypeScript задайте параметр T[] или readonly T[].

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

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

Для runtime-проверки JavaScript используйте Array.isArray, а для статического контракта TypeScript задайте параметр T[] или readonly T[].

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

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

Для runtime-проверки JavaScript используйте Array.isArray, а для статического контракта TypeScript задайте параметр T[] или readonly T[].

Например: function process<T>(items: readonly T[]) { /* обработка */ }. Типизация не защищает от некорректных данных, пришедших извне или через any, поэтому при необходимости добавляют if (!Array.isArray(items)) throw new TypeError(...). typeof не отличает массив от обычного объекта.

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

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

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

Подробнее