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

Why is it not possible to export a class instance in TypeScript?

本文关键字:实例 TypeScript 为什么      更新时间:2023-09-26

我没有找到在TypeScript中轻松导出类实例的方法。为了生成正确的javascript代码,我不得不想出以下解决方法。

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

生成

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

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

我偶然发现了导出实例的方法:

class MyClass(){}
export default new MyClass();

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

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

有没有一种更容易的方法来实现这个

是的。CCD_ 1。示例:

export = new Foo();

未来

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

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

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

打开https://k94n.com/es6-modules-single-instance-pattern是一种额外的方法:

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

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

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

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