Я работаю над некоторыми алгоритмами JS с TS.Таким образом, я сделал следующие функции:
function steamrollArray(arr: any[]): any[] {
return arr.reduce(
(accum: any, val: any) =>
Array.isArray(val) ? accum.concat(steamrollArray(val)) : accum.concat(val)
, []);
}
, но аргументам нужна гибкость для принятия многомерных массивов, как показано ниже:
steamrollArray([[["a"]], [["b"]]]);
steamrollArray([1, [2], [3, [[4]]]]);
steamrollArray([1, [], [3, [[4]]]]);
steamrollArray([1, {}, [3, [[4]]]]);
Как правильно определить аргументы дляfunction?
Конечно, я мог бы использовать Types, как здесь: многомерный массив машинописи с разными типами , но не будет работать во всех случаях.