【问题标题】:Node / JS create new instance right upon importNode / JS 在导入时创建新实例
【发布时间】:2017-06-13 09:31:49
【问题描述】:

我想创建一个类的实例,而不是先导入该类,然后再创建new

代替

var mainClass = require('../dist/main'); // has "class Main { ... }"
var mainInstance = new mainClass();

我想要

var mainInstance = new require('../dist/main').Main();

但是语法有问题。

var main = new require('../dist/main').Main();
                                       ^
TypeError: Class constructor Main cannot be invoked without 'new'

这甚至可能吗?我使用 TypeScript 和普通 JS 的组合。

【问题讨论】:

  • 你得到的实际语法错误是什么?
  • @erbridge 查看我的更新
  • 如果你希望只有一个实例,你可以只导出一个实例而不是类,以防止误用。

标签: javascript node.js typescript


【解决方案1】:

您可以使用括号来实现:

var main = new (require('../dist/main').Main)();

如果你的 module.exports 只是导出一个类,你会这样做:

var main = new (require('../dist/main'))();

【讨论】:

  • 你也可以换行require调用:new (require('../dist/main')).Main()
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多