Чтобы T обозначал сам массив, ограничьте его как T extends readonly unknown[]. В Array<T> параметр T, напротив, обозначает тип элемента.
Как явно указать, что T — это тип массива, а не тип элемента (используя Array<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> создаёт массив массивов, а не уточняет исходный контейнер.