Javascript Node/JS在导入时立即创建新实例

Javascript Node/JS在导入时立即创建新实例,javascript,node.js,typescript,Javascript,Node.js,Typescript,我想创建一个类的实例,而不需要先导入该类,然后再创建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').Mai

我想创建一个类的实例,而不需要先导入该类,然后再创建
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的组合。

您可以使用括号来实现:

var main = new (require('../dist/main').Main)();
如果您的
module.exports
仅导出一个类,您可以按照以下方式进行操作:

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

您实际遇到的语法错误是什么?@erbridge查看我的更新如果您希望只有一个实例,您可以只导出一个实例而不是类,以防止误用。您还可以包装
require
调用:
new(require('../dist/main')).main()