【TypeScript】vuex-module-decoratorsを使うときに気をつけたいこと
Vuex + TypeScriptを実現するにあたって、vuex-module-decoratorsの採用は2019年現在最適解な気がします。
vuex-module-decoratorsは端的に言えば、TypeScriptでVuexを書くためのパッケージ
導入方法、細かい書き方は以下の記事が詳しいです。
この記事だと、ちょっとアレだなと思ったのが以下の2点。
state
こうすべきですね。
きちんと アクセス修飾子のprivate をつけましょう。VuexModuleのClass内からしかアクセスできないようにすべきですね。StoreのStateなので。
getter
@Module
class Hoge extends VuexModule {
private count: number = 0;
public get totalCount(): number {
return this.count + 10;
}
}
一方こちらはgetterなので、Class外からもアクセスされます。public get にしましょう。
でもここで疑問なのが...
なんで @Getter 、@Stateがないねん。
@Action ある
@Mutation ある
@Getter ない
なんでやねん。
おそらくは、上述の通り書くことができるので、@Getterいらんやろ、ということでしょうか...。
結論
VuexそのものはJavaScriptで書かれることを想定しているので、TypeScriptを導入したら一工夫が必要。2019年現在はvuex-module-decoratorsが良さげ。
でも、getterとstateの書き方は気をつけようね、ということでした。