我目前在Vue.js應用程序中有一個類似於下面的對象,我試圖將其移植到TypeScript中。注意此對象的結構由Vuex library決定:TypeScript中的自引用類型
const getters = {
allUsers(state) {
return state.users;
},
firstUser(_state, getters) {
return getters.allUsers()[0]
}
}
如何我這裏干將提供相應類型firstUser
?
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
對象的類型。
這就是我正在使用的庫如何定義獲取者。 – fny