2017-01-27 19 views
8

Önce sınıfı almadan ve daha sonra new yapmadan bir sınıfın örneğini oluşturmak istiyorum. Bunun yerineDüğüm/JS, içe aktarma üzerine yeni örnek oluştur

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

ait

Ben

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

istiyorum Ama sözdizimi ile bir şey yanlıştır.

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

Bu mümkün mü? TypeScript ve sade JS'nin bir kombinasyonunu kullanıyorum.

+0

Alacağınız gerçek sözdizimi hatası nedir:

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

Ve eğer

senin module.exports yalnızca bir sınıf ihraç edildi aşağıdaki gibi yapardım? – erbridge

+0

@erbridge Güncellememi görün – DanFromGermany

+0

Sadece bir örnek olmak istiyorsanız, yanlış kullanımları önlemek için sınıf yerine bir örnek verebilirsiniz. – 4castle

cevap

7

Bunu başarmak için parantez kullanabilirsiniz:

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

Ayrıca 'require' call: 'new (required (' ../ dist/main ')). Main()' da sarabilirsiniz. – erbridge