我有一个类,我们称其为CoolClass
我正在使用的所有代码来访问它的静态属性。但是,我有一个设置步骤,在CoolClass
该步骤中,我将其定义为类的一部分。让我们称之为doSetupStuff()
。为了解决这个问题,我通过设置静态dummy
变量来调用它。
这是我目前正在运行的解决方案:
export default class CoolClass {
public static readonly something = 'cool';
public static readonly somethingelse = 12345;
// GOAL: how can we call doSomeStuff() only once, without setting this 'dummy' variable?
public static readonly dummy = CoolClass.doSetupStuff();
public static doSetupStuff(): void {
console.log('doing setup...');
// more logic here...
}
}
但这对我来说是不正确的,因为我实际上并不需要CoolClass.dummy
-我只需要运行其中的内容doSetupStuff()
。
我知道我可以这样做:
export default class CoolClass {
public static readonly something = 'cool';
public static readonly somethingelse = 12345;
constructor() {
this.doSetupStuff();
}
public doSetupStuff(): void {
console.log('doing setup...');
// more logic here...
}
}
但是我不能静态使用CoolClass。(即,new
每次我想在代码的其他部分中使用它时,都必须调用)。
当然,不需要dummy
像我当前的解决方案那样设置变量。有人有主意吗?我可以根据需要发布完整的代码,尽管我认为这与我希望实现的模式无关。
我想我可能会声明它,进行设置,然后将其导出
class CoolClass {
public static readonly something = 'cool';
public static readonly somethingelse = 12345;
public static doSetupStuff(): void {
console.log('yay!');
}
}
CoolClass.doSetupStuff();
export default CoolClass;
话虽doSetupStuff
这么说,但要公开成为可能并非理想之选,除非要由班级的用户调用。如果该函数仅适用于该类的公共方面,则可以隐藏该函数:
class CoolClass {
public static readonly something = 'cool';
public static readonly somethingelse = 12345;
}
function doSetupStuff(): void {
console.log('yay!');
}
doSetupStuff();
export default CoolClass;
就是说,我会被一个单身人士吸引:
class CoolClass {
public readonly something = 'cool';
public readonly somethingelse = 12345;
constructor() {
console.log('yay!'); // Setup here...
}
}
export default new CoolClass();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句