首页 > 解决方案 > 是打字稿中输入参数等于`this`上下文的一种方式吗?

问题描述

我有一个关于 vuex 和 typescript 的问题。我想获得严格的类型推断getters而不是any. 但现在我不知道,我开始怀疑 typescript@4 是否可以支持这种情况。

如果你不知道 vuex,没关系。这是一个简单的演示案例: typescript play demo


type M<S,G> = {
  state: S;
  getters:  G ;
}
 
type Getter<S,G> = {
  getters: G & {
    [K in keyof G]: (this: G, s: S, g: G) => void;
  }
}

function register<S, G>(module: M<S, G> & Getter<S, G>) {

}

register({
  state: {
    name: 'ts',
  },
  getters: {
    fullname(state, getters) {
      state.name;
      getters.fullname;
      return 1;
    }
  }
})

这个问题是:它是打字稿中推断全名参数(状态,吸气剂)的一种方式吗?

期望结果是:状态类型是 S,getter 类型是 ThisType。

标签: typescript

解决方案


推荐阅读