繁体   English   中英

如何从 eslint 源代码中保留 function 名称?

[英]How to retain function name from eslint Source Code?

我想将 Javascript 方法的实现存储在数据库中。 要将 function 存储为 JSON 解析字符串,我使用的是 ESlint 的 SourceCode 模块。 在我的代码中,我有一些看起来像这样的东西:

 let r = require(file);
 mapObj.set(id, {
        id,
        fn: SourceCode.splitLines(r.toString()),
      });

这适用于 function 声明,即:

function foo() {}

但是对于 function 表达式,即:箭头函数,function 表达式:

const foo = (a, b, c) => {}
const foo = function(a,b,c) {}

它不会保留 function 名称,如下所示:

 "(a, b, c) => {",
 "  .....
  "}"

如果这是来自 ESLint 的配置,我无法找到它。 任何帮助,将不胜感激!

如果 function 有名称,您可以在.name属性中查找它。

例如

 let r = require(file);
 mapObj.set(id, {
        id,
        name: r.name,
        fn: SourceCode.splitLines(r.toString()),
      });

请参阅: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name

 const foo1 = (a, b, c) => {} const foo2 = function(a,b,c) {} console.log(foo1.name, foo1.toString()); console.log(foo2.name, foo2.toString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM