Для того чтобы создать стипизированную функцию разбора массива любой вложенности в TypeScript, можно использовать рекурсию в сочетании с дженериками.
Для начала, определите интерфейс или тип, который будет представлять элементы массива:
interface ArrayItem { // Предположим, что в массиве находятся только числа value: number; }
Затем, определите интерфейс или тип для структуры вида "массив любой вложенности", который будет содержать в себе объект с полем "value" и массив дочерних элементов:
interface NestedArray { value: ArrayItem; children?: NestedArray[]; }
Теперь, определите функцию разбора массива:
function parseArray(array: NestedArray[]): void { for (const item of array) { console.log(item.value); // Произведите требуемую обработку элемента массива if (item.children) { parseArray(item.children); // Рекурсивный вызов функции для дочерних элементов } } }
Теперь, когда у вас есть шаблон структуры массива и функция разбора, вы можете использовать их следующим образом:
const nestedArray: NestedArray[] = [ { value: { value: 1 }, children: [ { value: { value: 2 }, }, { value: { value: 3 }, children: [ { value: { value: 4 }, }, ], }, ], }, { value: { value: 5 }, }, ]; parseArray(nestedArray);
Этот код пройдет по каждому элементу массива любой вложенности и выполнит требуемую обработку каждого элемента.
В этом примере, я использовал числовые значения для упрощения объяснения, но вы можете адаптировать код, чтобы он соответствовал вашим потребностям.