当前正在运行的javascript函数名?
这很好用:当前正在运行的javascript函数名?,javascript,typescript,Javascript,Typescript,这很好用: (function f() { console.log(f.name); //logs f })(); 但是有些答案要长得多,这让我觉得我可能错过了上述陈述中的一个gotcha(换句话说,它在本例中有效,但是…) 这里有一个稍微不同的typescript变体: function f1() {} function f2(f:Function) { console.log(f.name); } f2(f1); Function.name属性仅在符合ES6/ES20
(function f() {
console.log(f.name); //logs f
})();
但是有些答案要长得多,这让我觉得我可能错过了上述陈述中的一个gotcha(换句话说,它在本例中有效,但是…)
这里有一个稍微不同的typescript变体:
function f1() {}
function f2(f:Function) {
console.log(f.name);
}
f2(f1);
Function.name
属性仅在符合ES6/ES2015标准的发动机中可用。因此,例如,如果您尝试在Typescript中不进行额外配置的情况下访问它,则会出现以下错误:
[ts]属性“name”在类型“Function”上不存在
因此,对于typescript,在--lib值中包含es2015
,以获取属性声明
{
"compilerOptions": {
...
"lib": ["es2015"], /* Specify library files to be included in the compilation. */
...
}
在您的代码中,您已经知道了
f
的nameTrue,但我认为如果这也是另一个函数的函数参数,那么它应该会起作用,对吗?请拿出一个有效的用例。这肯定是重复的:关于这个问题的17个答案对您的案例都不起作用吗?