【发布时间】:2018-01-16 16:31:26
【问题描述】:
我目前在尝试移植到 TypeScript 的 Vue.js 应用程序中有一个类似于以下内容的对象。注意这个对象的结构是由Vuex library:
const getters = {
allUsers(state) {
return state.users;
},
firstUser(_state, getters) {
return getters.allUsers()[0]
}
}
如何在firstUser 中为 getter 提供适当的类型?
const getters = {
allUsers(state: State) {
return state.users;
},
firstUser(_state: State, getters: typeof getters) {
return getters.allUsers()[0]
}
}
目前我收到以下错误:
[ts] 'getters' is referenced directly or indirectly in its own type annotation.
更新:@basarat 确定您可以通过重命名参数来消除该错误。
const getters = {
allUsers(state: State) {
return state.users;
},
firstUser(_state: State, theGetters: typeof getters) {
return theGetters.allUsers()[0]
}
}
但是,typeof getters 最终成为 any 而不是 getters 对象的类型。
【问题讨论】:
标签: typescript vue.js vuex