概要
Vuex.Storeのmoduleはplain objectで記述する必要があります。
しかしこれだとVSCodeの補完が効かなくて悲しくなってきます。
Vuex.Storeのコンストラクタだと具合良く補完が効くのですが・・
解決策: JSDocを記述した薄いラッパーをかませる
そこで、こんな感じの薄いfunctionを用意しました。
store_module.js
import {StoreOptions} from 'vuex' // eslint-disable-line
/**
* @template T
* @param {StoreOptions<T>} options
* @returns {StoreOptions<T>}
*/
export default function StoreModule(options) {
return options
}
これをかますと、いい感じで補完が効くようになります。
素直にTypeScriptを使ったほうがいいんでしょうけど。。