У меня есть функция, которая пересекает массив и находит наиболее вероятные пары идентификаторов и счетчиков различных символов. Неверные значения возвращаются как нуль, и после отображения функции я фильтрую все эти нули.
export const findLikelyPairsId = (testingId: string, testingIdIdx: number, allIds: string[]) => {
const result = allIds
.map((comparingId: string, comparingIdIdx: number) => {
if (comparingIdIdx === testingIdIdx) return null;
const difference: number = differedLetters(testingId, comparingId);
const approvedDiffer: boolean = difference <= testingId.length - 1;
return approvedDiffer ? [testingId, comparingId, difference] : null;
})
.filter(value => value !== null);
return [...result];
};
Все еще машинопись кричит мне на мою функцию редуктора, что
Argument of type '(acc: any[], value: any[]) => any[]' is not assignable to parameter of type '(previousValue: any[], currentValue: (string | number)[] | null, currentIndex: number, array: ((string | number)[] | null)[]) => any[]'.
Types of parameters 'value' and 'currentValue' are incompatible.
Type '(string | number)[] | null' is not assignable to type 'any[]'.
Type 'null' is not assignable to type 'any[]'.
export const likelyListReducer = (acc: any[], value: any[]): any[] => {
return acc[2] ? (acc[2] > value[2] ? [...value] : [...acc]) : [...value];
};
Что я делаю не так?