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

Chr*_*wes 9 javascript typescript

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

 var expo = new Logger("default");
 export = expo;
Run Code Online (Sandbox Code Playgroud)

生成

var expo = new Logger("default");
module.exports = expo;
Run Code Online (Sandbox Code Playgroud)

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

Gre*_*Gum 19

很偶然,我发现这种方式导出一个实例:

class MyClass(){}

export default new MyClass();
Run Code Online (Sandbox Code Playgroud)


bas*_*rat 5

我不得不想出以下解决方法来生成正确的javascript代码

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

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

是。export = new Variable。例:

export = new Foo();
Run Code Online (Sandbox Code Playgroud)

未来

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

export default expo = new Logger("default");
Run Code Online (Sandbox Code Playgroud)

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


小智 5

https://k94n.com/es6-modules-single-instance-pattern上,这是执行此操作的另一种方法:

export let expo = new Logger("default");
Run Code Online (Sandbox Code Playgroud)

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