vuex官网-Typescript支持
import { Store } from 'vuex'
declare module '@vue/runtime-core' {
interface State {
count: number
}
interface ComponentCustomProperties {
$store: Store<State>
}
}
import { InjectionKey } from 'vue'
import { createStore, Store } from 'vuex'
export interface State {
count: number
}
export const key: InjectionKey<Store<State>> = Symbol()
export const store = createStore<State>({
state: {
count: 0
}
})
import { createApp } from 'vue'
import { store, key } from './store'
const app = createApp({ ... })
app.use(store, key)
app.mount('#app')
import { useStore } from 'vuex'
import { key } from './store'
export default {
setup () {
const store = useStore(key)
store.state.count
}
}