当前正在运行的javascript函数名称?

时间:2018-06-22 14:03:48

标签: javascript typescript

这可以正常使用AFAIK:

(function f() {
    console.log(f.name);  //logs f
})();

但是某些答案posted here更长了,这使我认为我可能缺少上面的语句的陷阱(换句话说,在这种情况下,它是可行的,但是...)? / p>

这是稍微不同的打字稿变体:

function f1() {} 
function f2(f:Function) {
   console.log(f.name);
}

f2(f1);

1 个答案:

答案 0 :(得分:0)

Function.name属性仅在符合ES6 / ES2015的引擎中可用。因此,例如,如果您尝试在Typescript中不进行其他配置的情况下访问它,则会收到错误消息:

  

[ts]属性“名称”在类型“函数”上不存在。

因此,对于打字稿,在您的--lib值中包含es2015以获取属性声明。

    {
    "compilerOptions": {
        ...
        "lib": ["es2015"],                        /* Specify library files to be included in the compilation. */
        ...
    }