这是一种方式:
class SomeClass {
private static myStaticVariable = "whatever";
private static __static_ctor = (() => { /* do static constructor stuff :) */ })();
}
__static_ctor
这是一个立即调用的函数表达式。Typescript 将输出代码以在生成的类结束时调用它。
更新:对于静态构造函数中不再允许被静态成员引用的泛型类型,您现在需要一个额外的步骤:
class SomeClass<T> {
static myStaticVariable = "whatever";
private ___static_ctor = (() => { var someClass:SomeClass<T> ; /* do static constructor stuff :) */ })();
private static __static_ctor = SomeClass.prototype.___static_ctor();
}
当然,在任何情况下,您都可以在类之后调用泛型类型静态构造函数,例如:
class SomeClass<T> {
static myStaticVariable = "whatever";
private __static_ctor = (() => { var example: SomeClass<T>; /* do static constructor stuff :) */ })();
}
SomeClass.prototype.__static_ctor();
只要记住永远不要this
在__static_ctor
上面使用(显然)。