В Javascript Я написал код для редуктора, чтобы обрабатывать добавление и удаление строк из массива. Этот код работает нормально:
const taskId: string = action.payload;
let taskIds: ?Array<string> = state.selectedTaskIds;
if (!taskIds) {
taskIds = [taskId];
} else if (taskIds.includes(taskId)) {
if (taskIds.length === 1) {
taskIds = null;
} else {
const idx = taskIds.indexOf(taskId);
taskIds = [...taskIds.slice(0, idx), ...taskIds.slice(idx +1, taskIds.length)];
// DNW: taskIds = taskIds.filter((selTaskId: ?string) => selTaskId !== taskId);
}
} else {
taskIds.push(taskId);
}
Что не работает, так это закомментированная строка с префиксом «DNW», которая должна выполнить sh, что делают 2 строки кода над ней. Я получаю сообщение об ошибке потока:
Отсутствует аннотация типа для T
. T
- это параметр типа, объявленный в типе массива [1] и неявно созданный при вызове метода filter
[2] .Flow (InferError)
Я пробовал несколько вещей, но не смог не решить, поэтому я использовал другой подход. Но мне очень любопытно, что говорит мне это сообщение об ошибке и как его решить.