Для 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 не отличает массив от обычного объекта.