Я использую 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 типов?