Без типизации отлично работает следующий вариант c рекурсией:
const exampleOne = [['Слово1', 'Слово2'], ['Слово2', 'Слово3', 'Слово5'], ['Слово4']];
const depthArray = (arr) => {
let res;
const tempArr = arr.reduce(function (newArr, item) {
if (Array.isArray(item)) {
res = depthArray(item);
} else {
res = item;
}
return newArr.concat(res);
}, [])
return tempArr;
}
На мой типизированный вариант ошибок интерпретатор не дает и все работает, но самому не нравится корявость кода:
const depthArrayTS = (arr: any) => {
let res: any;
const tempArr: string[] = arr.reduce((newArr: string[], item: any) => {
if (Array.isArray(item)) {
res = depthArray(item)
} else {
res = item;
}
return newArr.concat(res)
}, [])
return tempArr
}
Как это сделать более правильно?