Вы можете достичь этого, явно введя свое состояние.
В Contract Management Store.ts
export interface ContractManagementState {
Contract: ContractType;
}
В вашем компоненте:
...
(this.$store as Store<ContractManagementState>).<intellisense here>
Вы должны сделать эток сожалению, каждый раз, когда вы получаете доступ к этому состоянию.Это связано с тем, что Vuex использует расширение модуля для объявления о существовании свойства $store
для машинописного текста.
In vuex/types/vue.d.ts
:
declare module "vue/types/vue" {
interface Vue {
$store: Store<any>;
}
}
Вы не можете переопределить любоес вашими конкретными наборами состояний (в конце концов, это называется модуль увеличение ).Возможное решение - использовать геттеры для доступа к вашему магазину.Существует несколько библиотек машинописи для добавления информации о типе в методы получения, мутаторы и действия, такие как vuex-typcript и vuex-typex .