Как явно указать, что T — это тип массива, а не тип элемента (используя Array<T>)?

Чтобы T обозначал сам массив, ограничьте его как T extends readonly unknown[]. В Array<T> параметр T, напротив, обозначает тип элемента.

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

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

Чтобы T обозначал сам массив, ограничьте его как T extends readonly unknown[]. В Array<T> параметр T, напротив, обозначает тип элемента.

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

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

Чтобы T обозначал сам массив, ограничьте его как T extends readonly unknown[]. В Array<T> параметр T, напротив, обозначает тип элемента.

Например: function first<T extends readonly unknown[]>(items: T): T[number] | undefined { return items[0]; }. Такая сигнатура принимает массивы и readonly-кортежи. Если T уже является массивом, Array<T> создаёт массив массивов, а не уточняет исходный контейнер.

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

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

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

Подробнее