关于vuex getter的问题
来源:14-1 课程总结
慕粉3178367
2023-09-23
老师你好,我先给vuex中的getter设置一个类型,这样补全方便一些。但是为什么好像设置不了?
// getters.ts 这里是没问题的
interface GettersProps {
token: (state: GlobalDataProps) => string
hasUserInfo: (state: GlobalDataProps) => boolean
}
const getters: GettersProps = {
token: (state: GlobalDataProps): string => state.user.token,
hasUserInfo: (state: GlobalDataProps): boolean =>
JSON.stringify(state.user.userInfo) !== '{}',
}
// index.ts
export interface GlobalDataProps {
user: UserState
app: AppState
}
export default createStore<GlobalDataProps>({
getters, // 这里的getters 报错了报错内容如下
modules: {
user,
app
}
})
// 报错
不能将类型“GettersProps”分配给类型“GetterTree<GlobalDataProps, GlobalDataProps>”。
类型“GettersProps”中缺少类型“string”的索引签名。ts(2322)
index.d.ts(109, 3): 所需类型来自属性 "getters",在此处的 "StoreOptions<GlobalDataProps>" 类型上声明该属性
写回答
1回答
-
张轩
2023-09-24
同学你好
这是因为你的 getters 和要求的类型有冲突造成的,假如使用 vuex,不建议给 getter 添加类型,费时费力。想要完美的类型,直接换 pinia 是更好的方式,就像我们课中最新更新的 pinia 内容一样,更方便。
012023-09-24
相似问题
vuex和mitt
回答 1
关于vuex的getters方法问题
回答 1