【问题标题】:Currently running javascript function name?当前运行的 javascript 函数名称?
【发布时间】:2018-06-22 14:03:48
【问题描述】:

这很好 AFAIK:

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

但是posted here 的一些答案要长得多,这让我觉得我可能错过了上述陈述的一个陷阱(换句话说,它在这种情况下有效,但是......)?

这是一个略有不同的打字稿变体:

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

f2(f1);

【问题讨论】:

  • 在你的代码中你已经知道f的名字
  • 是的,但我认为如果这也是另一个函数的函数参数,它应该可以工作,对吧?
  • 请提出一个有效的用例。
  • 这肯定是重复的:stackoverflow.com/a/1013279/295783
  • 该问题的 17 个答案都不适合您的情况吗?

标签: javascript typescript


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2011-04-17
    • 2011-06-11
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多