У меня проблема с набором текста, особенно с функцией reduce()
, где accumulator[currentValue]
возвращает ошибку:
Элемент неявно имеет тип 'любой', поскольку выражение типа 'строка' может 'не может использоваться для индексации типа' CombinedState <{order: TOrderState; сотрудник: TEmployeeState; }> '. Индексная подпись с параметром типа «строка» не была обнаружена для типа «CombinedState <{order: TOrderState; сотрудник: TEmployeeState; }> '.
interface TArgs {
path: string[]
action: Record<string, string>
}
const testFunc = ({ path, action }: TArgs): Promise<string> => {
return new Promise(resolve => {
const unsubscribe = store.subscribe(() => {
const state = store.getState()
const value = path.reduce(
(accumulator, currentValue) => accumulator[currentValue], state)
if (value) {
resolve(value)
unsubscribe()
}
})
store.dispatch(action)
})
}
testFunc(["order", "partials", "details"], {type: "SOME_ACTION"})
В конце value
возвращает «строку» в результате доступа к вложенному свойству состояния.
Как правильно ввести это?