【问题标题】:Getting keys of a class in typescript在打字稿中获取类的键
【发布时间】:2019-09-27 16:54:26
【问题描述】:

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

myClass[key]()

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

问题可能是到目前为止 myClass 是在 .js 文件中定义的,并像这样封装:

const myClass = new MyActualClass();
export default myClass

是否可以不将.js文件转成typescript直接提取信息,直接从MyActualClass中提取信息?

【问题讨论】:

  • 可能是Object.getOwnPropertyNames(myClass.prototype)?
  • 嗯,TJ 是对的。请查看如何制作minimal reproducible example
  • 对不起大家。我现在更新了描述。

标签: typescript class methods


【解决方案1】:

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

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

let s: keyof typeof myClass;

Example on the playground

【讨论】:

  • 谢谢!当我必须在打字稿中组合几个关键字时,我总是失败。
猜你喜欢
  • 2022-01-25
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 2022-11-02
  • 2020-03-14
  • 2020-05-09
相关资源
最近更新 更多