【发布时间】:2020-10-15 13:10:40
【问题描述】:
我正在使用 typescript + direct-vuex 包实现我的 VueJS 商店,但在使用 getter 时遇到了问题。
store.getters 的类型是{},没有属性。但是在运行时它具有属性。
奇怪的是UserModule.getters 类型是正确的,但商店却没有:
userModule.getters:
store.getters:
存储/索引.ts:
Vue.use(Vuex);
const {
store,
rootActionContext,
moduleActionContext,
rootGetterContext,
moduleGetterContext,
} = createDirectStore({
state: {
CurrentUser: {} as User,
},
modules: {
user: userModule,
chat: chatModule,
},
});
console.log(store.getters);
store/modules/user/index.ts:
export const userModule = defineModule({
state: {
userList: [],
currentUser: {},
} as UserStates,
actions: userActions,
mutations: userMutations,
getters: userGetters,
});
store/modules/user/userGetters.ts:
export const userGetters = defineGetters<UserStates>()({
canUpdateUsers(...args): boolean {
const { state } = userGetterContext(args);
console.log("Getters state: ", state);
return (
state.currentUser.role === "admin" ||
state.currentUser.role === "presenter"
);
},
});
【问题讨论】:
-
这里有同样的问题。运气好吗?
标签: typescript vue.js vuex