# VuexModule
If you are writing your stores in typescript, you need to make sure you extend every class with VuexModule. This ensures that calling $store inside a getter or action does not produce an error. The $store property is typed with the ActionContext so keep in mind when you use it in a getter, you might get suggestions which are not available. Not the most elegant way but still better than any.
You can find every context which is passed to $store here:
import { VuexClass, VuexModule } from '@averjs/vuex-decorators';
@VuexClass
export default class TestStore extends VuexModule {
moduleName = 'test';
@Action async test() {
// When leaving out VuexModule, this would produce an error in typescript.
this.$store.commit();
}
}