TypeScript-如何将参数声明为先前定义的变量的类型?

时间:2018-06-19 15:52:26

标签: typescript

考虑这种情况:

const state = {
  user: null,
  metadata: null
}

const getters = {
  user(state) {
    return state.user
  }
}

在这种情况下,如何将state的{​​{1}}参数定义为先前定义的getters.user(state)状态变量?

1 个答案:

答案 0 :(得分:1)

您可以使用typeof运算符来获取state的类型:

const state = {
    user: null,
    metadata: null
}

const getters = {
    user(s: typeof state) {
        return s.user
    }
}

您还可以使用类型查询来获取属性的类型:typeof state['user']

请注意,我将参数重命名为s,如果参数名称与const相同,则typeof会尝试按原样返回参数的类型范围。