typescript - 使用类的静态成员打字打字
问题描述
我想通过这个类的一个对象来访问一个类的静态成员。
我使用obj.constructor
. 它工作得很好,除了打字稿 linter 说
“函数”类型上不存在属性“getName”
class Foo {
public static getName(): string {
return 'foo';
}
}
const foo = new Foo();
const name: string = foo.constructor.getName();
我尝试使用:const name: string = (foo.constructor as Foo).getName();
但它给了我
属性“getName”是“Foo”类型的静态成员
编辑:
它使用:const name: string = (foo.constructor as typeof Foo).getName();
有没有什么方法可以在不手动转换类的情况下工作?
Foo.getName()
信息:在我的具体情况下,我不能直接调用它
解决方案
通过直接调用构造函数来访问静态方法:
Foo.getName()
如果由于某种原因您无权访问构造函数,则断言foo.constructor
为它的类型。
const name: string = (foo.constructor as typeof Foo).getName();
推荐阅读
- python - Python if 重复功能
- pyqt5 - 更新同一图表中的数据而不是在多个窗口中打开?
- javascript - 如何在 chrome 中获取全局通知列表?
- stripe-payments - 在什么情况下会发送 stripe 的 transfer.failed webhook?
- powershell - 请求帮助创建 POWERSHELL DSC 脚本
- r - sjPlot 包有问题吗?
- php - create_function() 的补丁导致 PHP 7.3.6 出现问题
- python - 将 json 列表标准化为值
- exception - 骆驼春 DSL 永远返还
- r - RI 需要帮助理解我教授的 R 代码来计算准确的置信区间