繁体   English   中英

从Javascript调用Typescript类时的语法

[英]Syntax when calling Typescript class from Javascript

我已经写了一个打字稿类,它将在旧版javascript中调用。 我通过以下方式导入:

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

转换后,我最终得到:

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

因此,必须使用以下命令调用它:

new ConfigurationManager.ConfigurationManager(...)

创建一个新实例。 有没有一种方法可以解决此问题,因此javascript方面的详细程度要少一些?

有几种选择:

  1. 您可以定义另一个变量来放置类:

码:

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;
}());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM