Egret项目Typescript的编译报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Egret项目Typescript的编译报错相关的知识,希望对你有一定的参考价值。
今天编译项目,出现了一个奇怪的报错,如下:
E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41531 1> if (file.name.toLowerCase() in sortedMap) 1> ^ 1> RangeError: Maximum call stack size exceeded 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41531:48) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21) 1> at insert (E:\engine\egret-core-3.1.2\tools\lib\typescript\tsclark.js:41534:21)
由于报错没有给出详细的信息,只是大概的可以看出和解析代码文件进入了死循环相关,最后只能一次次回退提交来调试。
最后找到了问题的所在,这里简单的记录一下:
假设我有一个A.ts:
1 class A {} 2 class C extends B {}
还有一个B.ts:
1 class B extends A {}
就会出现这个问题,继承的一个类如果在其他的文件中,而该文件中的类又继承了当前文件中的类就会出现这个问题。
找到问题解决方法就多了,可以添加一个C.ts把类C放入,可以将类B放入A.ts文件中,只有避免出现上面的情况即可。
以上是关于Egret项目Typescript的编译报错的主要内容,如果未能解决你的问题,请参考以下文章
关于TypeScript中的module和export关键词
初识TypeScript 配置环境后运行Hello World编译报错.
错误记录Kotlin 编译报错 ( Not nullable value required to call an ‘iterator()‘ method on for-loop range )(代码片