[]Laya如何处理类与类之间的依赖关系

在一个类中定义一个静态变量,并初始化为另一个类的实例或者是枚举成员。怎么处理依赖?
enum LogLevelEnum{
ALL = -0xFFFFFFFF,
TRACE = 0,
DEBUG = 200,
INFO = 400,
WARN = 600,
ERROR = 800,
FATAL = 1000,
OFF = 0xFFFFFFFF
}
class Logger {

public static logLevel: number = LogLevelEnum.ALL; // 获取或设置日志输出的分级

}
编译运行会报错。
可行的办法是改成getter去懒初始化,
用三斜线指令(ts推荐的,但是貌似没用?)
手动修改index.html中js文件的加载顺序将被依赖的js放在前面。但是文件多了之后手动调整顺序明显不合理。而且下次编译就又被还原了。
目前白鹭采用的是在他的编译命令中自动处理了依赖之间的排序。
求加上这个功能。
 
已邀请:

liuliqianxiao

赞同来自:

刚才看了下layacmd的源码,是有对index.html中的js文件排序的,只不过刚好是我这种情况没有处理到……
var classPattern = /\b(?:interface|class)\b\s+(\w+)(?:\s*(?:extends|implements)\s*((?:(?:(?:\w+\.)*(?:\w+)),?\b)+))?/;
var modeuleHelp = /\b(?:namespace|module)\b\s+((?:\w\.?)+)/;
var importHelp = /\bimport\b.*?=\s*((?:\w+\.?)+)/ //.exec(str)[1]
var interfaceHelp = /\bimplements\b\s+((?:\w+\,?)+)/ //.exec(str)
var staticHelp = /\bstatic\b\s+\w+:((?:\w+\.?)+)\s*=\s*new\s+/ //.exec(str)[1]
var refHelp =/"(.*?)"///.exec("sdfasdfsaf\"123ssdf\"sdfsdf")[1]
tsSort.js中匹配,对文件排序中恰好没有匹配我这种吧静态变量初始化为枚举的情况。
那同理,静态变量如果初始赋值为另一个类的单例,
比如public static value: any = OtherClass.instace,这个也匹配不到的。

ymsdandan

赞同来自:

好的,我们会和相关人员商讨一下,感谢您的宝贵建议

要回复问题请先

商务合作
商务合作