Javascript TypeScript中的类型检测
有没有办法在TypeScript中获取函数调用方类型的名称?或者,是否有方法获取当前对象类型的名称 比如:Javascript TypeScript中的类型检测,javascript,typescript,type-deduction,Javascript,Typescript,Type Deduction,有没有办法在TypeScript中获取函数调用方类型的名称?或者,是否有方法获取当前对象类型的名称 比如: export class SomeData { sampleFunc() { console.log(this.getTypeName()); } //or anotherFunc(caller: any) { console.log(caller.getTypeName()); } } getTypeName是此
export class SomeData {
sampleFunc() {
console.log(this.getTypeName());
}
//or
anotherFunc(caller: any) {
console.log(caller.getTypeName());
}
}
getTypeName
是此处所需的功能。TypeScript中的类型在编译后消失。有typeof
(用于获取类定义对象本身),但我看不出如何获取名称
这种方法的一种用法可以是使用console.group(name)
和console.groupEnd()
-至少在开发时使用更干净的日志记录
编辑:
就我所搜索到的,有一个建议“向ES7添加Decorators,以及用于Decorator元数据的ES7反射API原型”。人们可以将其与合作使用。出于我的目的,我使用:
caller.constructor.name
有关更多信息,请阅读这篇优秀的文章:
您能否用代码示例更新您想要实现的目标?我知道您可以使用caller.name,但获取类型是不可能的,因为编译TypeScript时应用的规则与JavaScript相同。也许这可以帮助你@MatijaGrcic谢谢;我已经更新了这个问题。顺便说一句,在chrome上,
参数.callee.caller.name仍然提供函数的主体。你可能还想试试你在开玩笑吧!:)谢谢