Ограничение по структуре
Внутри дженерик-функции TypeScript ничего не знает про T. Это может быть строка, число, null, что угодно. Поэтому к значению типа T нельзя обратиться ни через какое свойство: вдруг его там нет.
Онлайн-редактор кода, разбор решения и отметки о прогрессе доступны после входа.
ВойтиСоздать аккаунт — бесплатноВнутри дженерик-функции TypeScript ничего не знает про T. Это может быть строка, число, null, что угодно. Поэтому к значению типа T нельзя обратиться ни через какое свойство: вдруг его там нет.
В задании функция хочет прочитать длину:
Первая ошибка: «Property 'length' does not exist on type 'T'». Вторая: «Unused '@ts-expect-error' directive». Директива ожидает ошибку на вызове с числом, а её нет: T принимает любое значение, включая 42.
Обе ошибки про одно и то же. Функция пускает слишком широкий набор типов, и поэтому не может ничего про них гарантировать. Нужно сузить T так, чтобы туда попадали только значения с length. Для этого у параметра типа есть ограничение через extends.
Подробнее: Generic Constraints — справочник TypeScript.
Ограничь T так, чтобы функция принимала только значения, у которых есть числовое свойство length. Строки и массивы должны проходить, число нет. Тело функции и вызовы менять не нужно.