Как стипизировать функцию разбора массива любой вложенности?

Для того чтобы создать стипизированную функцию разбора массива любой вложенности в 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);

Этот код пройдет по каждому элементу массива любой вложенности и выполнит требуемую обработку каждого элемента.

В этом примере, я использовал числовые значения для упрощения объяснения, но вы можете адаптировать код, чтобы он соответствовал вашим потребностям.