从Javascript调用Typescript类时的语法

我已经写了一个打字稿类,将在传统的JavaScript中调用。 我通过以下方式导入:

const ConfigurationManager = require('./ConfigurationManager');

在结束之后,我最终得到:

 var ConfigurationManager = /** @class */ (function () { function ConfigurationManager 

所以它必须被调用:

new ConfigurationManager.ConfigurationManager(...)

创build一个新的实例。 有没有一种方法来清理这个JavaScript的一面是less一点冗长?

有几个选项:

  1. 你可以定义另外一个variables来放置类:

码:

 const ConfigurationManagerModule = require('./ConfigurationManager'); const ConfigurationManager = ConfigurationManagerModule.ConfigurationManager; new ConfigurationManager(...); 
  1. 如果模块只输出这个类,则可以将该模块的整个输出设置为类。

码:

 export = class ConfigurationManager { } const ConfigurationManager = require('./ConfigurationManager'); new ConfigurationManager(); 

对于第二个选项, export class ..export = class ...之间的区别在于,在第一种情况下,我们指定要添加到导出的内容,第二个选项指定整个导出是类。 根据生成的JS,第一个选项产生这个:

 var ConfigurationManager = /** @class */ (function () { function ConfigurationManager() { } return ConfigurationManager; }()); exports.ConfigurationManager = ConfigurationManager; 

而第二个生成这个:

 module.exports = /** @class */ (function () { function ConfigurationManager() { } return ConfigurationManager; }());