gettype获取类名_在TypeScript中运行时获取对象的类名

在TypeScript中,可以通过访问实例的`constructor.name`属性或者`Class.name`来获取对象的类名。然而,需要注意的是,使用缩小代码时,类名可能会改变。另外,可以使用正则表达式从构造函数的字符串形式中提取类名,或者在构造函数内部为对象分配一个`typeName`属性来避免缩小问题。
摘要由CSDN通过智能技术生成

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值