@nuxtjs/composition-api はすでに適用済み
ライブラリのインストール
npm i nuxt-typed-vuex
#vuex-module-decoratorsよりとっつきやすそう…と思い。
nuxt.config に設定追加
buildModules: [ 'nuxt-typed-vuex' // 追加 ]
index.d.ts に定義追加
Typed Vuex の公式にある通りだけど…。
import { accessorType } from '~/store'
declare module 'vue/types/vue' {
interface Vue {
$accessor: typeof accessorType
}
}
declare module '@nuxt/types' {
interface NuxtAppOptions {
$accessor: typeof accessorType
}
interface Context {
$accessor: typeof accessorType,
}
}
index.d.ts を tsconfig.json の typesに追加
"types": [ "./types", // types/index.d.ts に置いてた ]
コンポーネントからの呼び出し
<script lang="ts">
import { defineComponent, computed, useContext } from "@nuxtjs/composition-api";
export default defineComponent({
head() {
return {
};
},
setup(props) {
const {$accessor} = useContext();
const application_id = computed(() => $accessor.user.application_id);
return { application_id };
},
});
</script>