从Javascript调用Typescript类时的语法
我已经写了一个打字稿类,将在传统的JavaScript中调用。 我通过以下方式导入:
const ConfigurationManager = require('./ConfigurationManager');
在结束之后,我最终得到:
var ConfigurationManager = /** @class */ (function () { function ConfigurationManager
所以它必须被调用:
new ConfigurationManager.ConfigurationManager(...)
创build一个新的实例。 有没有一种方法来清理这个JavaScript的一面是less一点冗长?
有几个选项:
- 你可以定义另外一个variables来放置类:
码:
const ConfigurationManagerModule = require('./ConfigurationManager'); const ConfigurationManager = ConfigurationManagerModule.ConfigurationManager; new ConfigurationManager(...);
- 如果模块只输出这个类,则可以将该模块的整个输出设置为类。
码:
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; }());