我创建了一个单例(抽象)类,需要在大多数方法使用之前初始化一些数据。以下是该类的示例:
abstract class MyClass {
private static initialize(): void {
// do stuff
}
public static doStuff1(param1: string): string {
MyClass.initialize();
// do stuff
return 'stuff1';
}
public static doStuff2(param2: string[]): string[] {
MyClass.initialize();
// do stuff
return ['stuff2'];
}
}
有没有一种方法可以避免在每个方法上添加 initialize()
调用?我考虑使用装饰器,并找到了这个相关的问题:Typescript | Call a function every time a function is called
不幸的是,它使用了传统的装饰器格式,至少这是我收到的错误信息:
Syntax error - Support for the experimental syntax 'decorators-legacy' isn't currently enabled
我正在尝试找到一个等效的格式使用第二阶段提案,但也许有更好的选择?
initialize
设置了一些静态变量的值,这些变量被其他方法使用,你可以编写一个get
方法来进行初始化。 - kaya3initialize
方法将填充多个静态属性,这些属性被多个方法使用 - 这就是为什么我正在寻找一种全局处理的方式。 - Nicolas Bouvrette