在TypeScript中运行时获取对象的类名
是否可以使用typescript在运行时获取对象的类/类型名称?
class MyClass{}
var instance = new MyClass();
console.log(instance.????); // Should output "MyClass"
Adam Mills asked 2019-04-11T03:14:30Z
9个解决方案
306 votes
简单回答:
class MyClass {}
const instance = new MyClass();
console.log(instance.constructor.name); // MyClass
console.log(MyClass.name); // MyClass
但是:请注意,使用缩小代码时名称可能会有所不同。
Mikael Couzic answered 2019-04-11T03:14:50Z
21 votes
我知道我迟到了,但我发现这也有效。
var constructorString: string = this.constructor.toString();
var className: string = constructorString.match(/\w+/g)[1];
另外...
var className: string = this.constructor.toString().match(/\w+/g)[1];
上面的代码将整个构造函数代码作为字符串获取并应用正则表达式来获取所有“单词”。 第一个单词应该是'fun