为什么无法在TypeScript中导出类实例?

时间:2015-04-08 20:32:40

标签: javascript typescript

我没有找到一种在TypeScript中轻松导出类实例的方法。我必须提出以下解决方法来生成正确的javascript代码。

 var expo = new Logger("default");
 export = expo;

产生

var expo = new Logger("default");
module.exports = expo;

有没有更简单的方法来实现这一目标?

4 个答案:

答案 0 :(得分:18)

很偶然,我找到了导出实例的方法:

class MyClass(){}

export default new MyClass();

答案 1 :(得分:3)

  

我必须提出以下解决方法来生成正确的javascript代码

不是解决方法。这是TS执行根级别导出的标准方法。

  

有没有更简单的方法来实现这个

是。 export = new Variable。示例:

export = new Foo();

未来

对于ES模块,您应该使用default导出:

export default expo = new Logger("default");

在大多数情况下,这与根级别导出具有相同的效果。

答案 2 :(得分:3)

开启https://k94n.com/es6-modules-single-instance-pattern是另外一种方法:

export let expo = new Logger("default");

有一个优点是可以在* .ts文件中导出多个类实例。

答案 3 :(得分:0)

一种方法是在类中创建静态实例:

export class MyClass {
  static instanceOfMyClass = new MyClass();
} 

..

var instanceOfMyClass = MyClass.instanceOfMyClass;