vuex getter,带有用Typescript编写的参数

Mar*_*com 1 getter arguments typescript vuex

可以创建一个带参数参数的vuex存储getter,如下所示:https ://vuex.vuejs.org/en/getters.html

我正在使用Typescript(https://github.com/hmexx/vue_typescript_starter_kit)编写我的代码,但是我不知道如何编写带有参数自变量的getter。即,以下似乎无效:

export function getItemById(state : State, id : Number) : MyItem | undefined     {
  if(id === undefined) {
    return undefined;
  }
  for(const item of state.items) {
    if(item.id === id) {
      return item;
    }
  }
  return undefined;
}

export default <GetterTree<State, any>> {
  getItemById
};
Run Code Online (Sandbox Code Playgroud)

cla*_*ing 5

基于vuex文档,您可以实现以下功能:

getters: {
  // ...
  getTodoById: (state, getters) => (id) => {
    return state.todos.find(todo => todo.id === id)
  }
}
store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
Run Code Online (Sandbox Code Playgroud)

在打字稿中,您可以尝试如下操作:

export default {
  getItemById(state: State, getters: any) {
    return (id: number) => {
      return state.items.find(item => item.id === id);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)