Typescript `direct vuex`在定义getter时出错:";函数隐式具有返回类型';任何'&引用;

Typescript `direct vuex`在定义getter时出错:";函数隐式具有返回类型';任何'&引用;,typescript,vue.js,vuex,Typescript,Vue.js,Vuex,我正在使用directvuexpackage为Vuejs+Typescript定义存储。尝试定义getter时出现以下错误: “userGetters”隐式具有类型“any”,因为它没有类型注释,并且在其自己的初始值设定项中直接或间接引用。ts(7022) 我可以从我的组件访问store.getters.canUpdateUsers,但是getter只执行了一次,并且getters的类型是任意的。这正是存储的类型。getters: (属性)获取程序:{ [x:字符串]:任意; 用户:{ [x:字

我正在使用
directvuex
package为Vuejs+Typescript定义存储。尝试定义getter时出现以下错误:

“userGetters”隐式具有类型“any”,因为它没有类型注释,并且在其自己的初始值设定项中直接或间接引用。ts(7022)

我可以从我的组件访问
store.getters.canUpdateUsers
,但是getter只执行了一次,并且
getters的类型是任意的。这正是
存储的类型。getters

(属性)获取程序:{
[x:字符串]:任意;
用户:{
[x:字符串]:任意;
};
}
这是我的模块的getter部分:

export const userGetters=defineGetters()({
canUpdateUsers(…args){
//const{state}=userGetterContext(args);
const{state,getter,rootState,rootgetter}=mod1GetterContext(args)
console.log(状态);
返回(
state.currentUser.role==“管理员”||
state.currentUser.role==“演示者”
);
},
});
const mod1GetterContext=(args:[any,any,any,any])=>moduleGetterContext(args,userModule)
这就是模块本身:

export const userModule=defineModule({
声明:{
用户列表:[],
当前用户:{},
}作为用户状态,
操作:用户操作,
突变:用户突变,
getter:usergetter,
});
在定义之前,我已经禁用了
no use
eslint规则。这似乎与这个错误无关

更新:

我在这个沙盒中重现了错误:


如文档中所述,在使用moduleGetterContext时,应明确声明getter的返回类型:

操作上下文中的类型意味着TypeScript应该 永远不要从操作的上下文推断操作的返回类型 行动。事实上,这种类型将是递归的,因为 上下文包括操作的返回值。当这种情况发生时, TypeScript将整个上下文传递给任何用户。Tl;博士申报 存在的操作类型

出于同样的原因,每次使用ModuleGeterContext生成的getter上下文时,都要声明getter的返回类型

这是固定代码:

export const userGetters=defineGetters()({
//布尔类型是显式定义的
canUpdateUsers(…args):布尔值{
// ...
}

如文档中所述,在使用moduleGetterContext时,应明确声明getter的返回类型:

操作上下文中的类型意味着TypeScript应该 永远不要从操作的上下文推断操作的返回类型 实际上,这种类型是递归的,因为 上下文包括操作的返回值。发生这种情况时, 字体太长了,读不下去了。 存在的操作类型

出于同样的原因,每次使用ModuleGeterContext生成的getter上下文时,都要声明getter的返回类型!

这是固定代码:

export const userGetters=defineGetters()({
//布尔类型是显式定义的
canUpdateUsers(…args):布尔值{
// ...
}