我有一些打字稿代码,我正在做一些元编程,我需要能够访问instance.func.name
,但是 TypeScript 在编译的 JS 中省略了函数名称。
打字稿:
class ClassName {
// ...
func(): ReturnType {
// ...
}
}
编译后的 JavaScript:
// ...
ClassName.prototype.func = function () {
// ...
};
所需的 JavaScript:
ClassName.prototype.func = function func() {
// ... ^^^^
};
是否有我缺少的编译器选项,或者我可以在 TypeScript 中使用的关键字来完成此任务?
A解决方案,一旦我不会将其标记为已接受,因为它不提供name
属性,但可以与任何其他标识符一起使用,如下所示:
function named(target: any, key: string) {
target[key].functionName = key;
}
class ClassName {
// ...
@named
func(): ReturnType {
// ...
}
}
然后访问instance.func.functionName
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)