node.js - 实例化一个在运行时知道文件路径的类

标签 node.js typescript

如何实例化一个类(例如,使用已知的空构造函数),例如:

api/EmptyClass1.ts ,我有:

export default class EmptyClass1 {

}

并且,位于 api/EmptyClass2.ts ,我有:

export default class EmptyClass2 {

}

我想要这个功能:

function(filepath:string):any{
  return Object.fromFile(filepath); //this line is mock code
}

返回 EmptyClass1 的新实例或EmptyClass2 ,如果参数filepath:string"api/EmptyClass1.ts""api/EmptyClass2.ts" ,分别。

定义类的文件在编写函数时可能未知,可能包含任意数量的文件。因此,使用import声明每个类,然后使用 switch 或 if-then 语句不是可接受的解决方案。

定义类的 .ts 文件被转码为 JavaScript,并作为 .js 文件驻留在应用程序的 .build 文件夹中。

我在node.js(最新版本)上使用typescript。

最佳答案

改用require,你的问题就会得到解决。如果该文件可能不存在,可以使用 optional-require如果您想在不使用 try/catch 的情况下进行回退。

    function fromFile(filepath:string):any{
      // return Object.fromFile(filepath); //this line is mock code
      return require(filepath);
    }

或者直接调用 require 而不是将其包装在另一个函数中。

另请检查: nodejs require inside TypeScript file

关于node.js - 实例化一个在运行时知道文件路径的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59490400/

相关文章:

javascript - 无法找到 MongoDB

javascript - 在 Angular 2 中路由期间保持组件事件

javascript - 如何有条件地渲染按钮/使用 TypeScript 链接 Next.js 组件

javascript - 在 Angular 2 App 中转换双向绑定(bind)属性中的日期

mysql - 不使用 Sequelize 方法的 Sequelize 查询中的分页

Node.js 命令行工具在记事本中打开而不是执行

node.js - 在本地服务器上复制heroku/node.js内存泄漏以进行调试

javascript - 如何在 HTTPS 配置的 Express 服务器上避免 "Site not secure"

javascript - typescript 中的 'void' 是什么意思?

TypeScript 错误编译 map