在打字稿中获取类的键

MrM*_*men 2 methods class typescript

我有一个包含很多方法的类,我们称之为 myClass。我这样称呼它:

myClass[key]()
Run Code Online (Sandbox Code Playgroud)

有没有办法从 key 获取可能的值?我希望有类似 keyof myClass 的东西,但我得到“myClass 引用一个值,但在这里被用作类型”

问题可能是到目前为止 myClass 是在 .js 文件中定义并封装如下:

const myClass = new MyActualClass();
export default myClass
Run Code Online (Sandbox Code Playgroud)

是否可以在不将.js文件转换为typescript的情况下提取信息,并直接从MyActualClass中提取信息?

T.J*_*der 6

要获取运行时属性名称,您可以使用Object.keysObject.getOwnPropertyNames

在 TypeScript 级别,如果您想声明一个可以包含类实例键的变量,您可以这样做:

let s: keyof typeof myClass;
Run Code Online (Sandbox Code Playgroud)

操场上的例子

  • 谢谢!当我必须在打字稿中组合多个关键字时,我总是失败。 (2认同)