如何从 esModule 函数而不是平面函数中获取数据?

How to get data out of esModule function instead of flat function?

所以我目前正在使用 require 来获取代表我的组件之一的所有 TS 文件,以便我将它们用作参考。

this.req = require.context('../../my/context', true, /^\.\/.*\.component.ts$/)

作为我的服务的一部分,我还有一个名为 "getComponent" 的功能,然后我使用传递的文件路径从 req.

获取所需的组件
const component = this.req(filePath);

此时,如果我在控制台中记录它,我会看到一个具有函数及其所有关联数据的对象。它看起来像这样:

但是,如果我尝试以编程方式访问此信息,我当然会简单地返回对函数本身的引用:

有什么方法可以以编程方式访问第一个状态中的数据,而不取回对函数的引用?

这只是 Chrome 如何优化其控制台消息的产物。

当传递给 console.log() 的对象只是一个函数时,输出只是该函数的简化视图:

function myFunc() {}
console.log(myFunc);
ƒ myFunc() {}

如果您真的需要查看 function 对象的内容,请将其包装在一个新对象中:

console.log({ myFunc });
{myFunc: ƒ}
  myFunc: ƒ myFunc()
  arguments: null
  caller: null
  length: 0
  name: "myFunc"
  prototype: {constructor: ƒ}
  __proto__: ƒ ()
  [[FunctionLocation]]: VM14940:1
  [[Scopes]]: Scopes[1]
__proto__: Object