Как я могу предоставить типы для функций Vuex mapState? - PullRequest
0 голосов
/ 03 марта 2020

Я использую Typescript в своем компоненте Vuex и хотел бы предоставить типы для функций отображения в mapState. Интуитивно я написал это так:

@Component({
  computed: {
    ...mapState( MY_NAMESPACE, {
      fooIndex: ( state: MyModel ) => state.values.indexOf('foo')
    })
    // more computed props here
  }
})
export default class MyComponent extends Vue {}

Это работало в прошлом, однако после обновления моих зависимостей это больше не работает, я получаю ошибку No overload matches this call. Overload 1 of 6, '(namespace: string, map: string[]): { [x: string]: Computed; }', gave the following error.

В качестве обходного пути я могу удалить тип из параметра функции и привести его следующим образом:

@Component({
  computed: {
    ...mapState( MY_NAMESPACE, {
      fooIndex: state => (state as MyModel).values.indexOf('foo')
    }),
  }
})
export default class MyComponent extends Vue {}

Есть ли лучший способ express типов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...