你这种使用方式,比较奇怪。没试过,不过你可以试试我的方式。
有些方式会让这个模块方案头疼的。
比如:注入对象的实例
这个对象实例在实例构造期间就引用了模块,这个会报错
declare global {
interface IModuleMap {
bag: BagModule
}
}
export class BagModule implements egf.IModule {
key: string = "bag";
hero = m.hero.getHeroById(1);//这样会出问题
onInit() {
//所有模块实例注入之后
}
onAfterInit() {
//所有模块初始化onInit调用之后
}
getItemById(id: number) {
return { id: id, num: 2 };
}
}
比如:注入对象的构造函数
//A.ts
declare global {
interface IModuleMap {
A: typeof A
}
}
export class A {
static b = new m.B();//静态变量调用了
doSomething(){
}
}