zoukankan      html  css  js  c++  java
  • Egret项目Typescript的编译报错

    今天编译项目,出现了一个奇怪的报错,如下:

    E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41531
    1>                  if (file.name.toLowerCase() in sortedMap)
    1>                                                 ^
    1>  RangeError: Maximum call stack size exceeded
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41531:48)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.js:41534:21)
    1>      at insert (E:engineegret-core-3.1.2	oolslib	ypescript	sclark.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文件中,只有避免出现上面的情况即可。

  • 相关阅读:
    查看weblogic的console信息
    Gearman分布式任务处理系统(二)扩展应用
    Gearman分布式任务处理系统(一)基本介绍
    通过Gearman实现MySQL到Redis的数据同步(异步复制)
    java 23种设计模式
    linux常用命令
    Linux下软件常见安装方式
    Redis快速入门:安装、配置和操作
    Redis快速入门:选择Key-Value Store
    Redis快速入门:Key-Value存储系统简介
  • 原文地址:https://www.cnblogs.com/hammerc/p/5608952.html
Copyright © 2011-2022 走看看