我想将模块用于应该与 typescript 一起使用的 vuex (^4.0.2) 存储。所以我就这样开始了:
import {createStore, Module} from 'vuex';
type RootState = {
appID: string
}
type SessionState = {
lastSeen: number
}
const session: Module<SessionState, RootState> = {
state: () => ({ lastSeen: -Infinity })
}
const store = createStore<RootState>({
state: () => ({appID: 'r2d2'}),
modules: {
session
}
});
const s2 = store.state.session;
但这会产生这个错误:
“RootState”类型上不存在属性“会话”。
文档建议每个模块的状态都包含在商店的状态中并使用:
//@ts-ignore
console.log(store.state.session)
显示该模块已包含在内。
应该如何设置类型以正确反映状态?