在TypeScript中动态加载类,而无需默认导出

时间:2019-10-12 11:35:40

标签: typescript

我正在尝试在TypeScript中动态加载类,使它可以部分工作,但是我想知道是否可以在没有默认导出的情况下使其工作:

export default class Test extends Base {
...
register(new (await import(file)).default())

编辑:感谢Dhananjai的回答,我找到了这个解决方案: (解析来自路径,我正在使用glob获取目录中文件的所有路径)

for (const file of files) {
  try {
    const { name } = parse(file)
    const command = new (await import(file))[name]()
    this.register(command)
  } catch {
    return logger.error(`${file} is either not exporting a class or the file name does not match the exported class name`)
  }
}

1 个答案:

答案 0 :(得分:0)

应该很简单

export class Test extends Base
...
register(new (await import(file)).Test())