在运行时获得对象的类名
在运行时获得对象的类名
在TypeScript中,是否有可能在运行时获取一个对象的类/类型名称?
class MyClass{} var instance = new MyClass(); console.log(instance.????); // Should output "MyClass"
admin 更改状态以发布 2023年5月24日
我的解决方案不是依赖于类名。在理论上,object.constructor.name能够正常工作。但如果你在像Ionic这样的东西中使用TypeScript,当你进入生产模式时,它就会燃起来,因为Ionic的生产模式会缩小JavaScript代码。所以类会被命名为"a"和"e"之类的东西。
我最终做的是给所有的对象都添加一个typeName类,在构造函数中将类名分配给它。所以:
export class Person { id: number; name: string; typeName: string; constructor() { typeName = "Person"; }
是的,这不是真正要求的。但是在可能被缩小的代码上使用constructor.name只会引发大麻烦。