Тип вложенного состояния свойства в массиве уменьшить Redux Typescript - PullRequest
0 голосов
/ 09 июля 2020

У меня проблема с набором текста, особенно с функцией 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 возвращает «строку» в результате доступа к вложенному свойству состояния.

Как правильно ввести это?

...