Я пытаюсь создать функцию фильтра в Typescript, которая принимает многомерный массив, например: [[1, 'a'], [[2, 'b'], [3, 'c']]]
Я пытаюсь определить тип, который будет принимать функция следующим образом:
function filter(arr: Array<(string | number)[] | (string | number)[][]>) {
let result: (number | string)[][] = []
for (let i = 0; i<arr.length; i++) {
//console.log(arr[i])
if (arr[i].length === 2) {
result.push(arr[i])
}
}
}
console.log(filter([[1, 'a'], [[2, 'b'], [3, 'c']]]))
Вот ошибка, которую я получаю:
ERROR:
(parameter) arr: ((string | number)[] | (string | number)[][])[]
Argument of type '(string | number)[] | (string | number)[][]' is not assignable to parameter of type '(string | number)[]'.
Type '(string | number)[][]' is not assignable to type '(string | number)[]'.
Type '(string | number)[]' is not assignable to type 'string | number'.
Type '(string | number)[]' is not assignable to type 'string'.ts(2345)
Не знаю понимаю почему. Я четко определил, что массив будет состоять из массива строк или массива массивов строк. В чем может быть проблема? Спасибо!