現在、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
むしろgetters
オブジェクトの型よりany
なってしまいます。
これは、私が使用しているライブラリがゲッターを定義する方法を示しています。 – fny