Typescript

时间:2017-11-06 02:33:45

标签: typescript asynchronous

在我的一个打字稿文件中,我有两个类,每个类都有一个构造函数。然后在每个类中,它需要获得彼此的类的实例。我的代码如下:

namespace pxsim {
    export class Board extends pxsim.BaseBoard {
        public tMap: trafficMap = new trafficMap();
        public x: number;
        public y: number;
        constructor(){
            this.y = 10;
            this.x = this.tMap.x;
        }
    }
    export class trafficMap{
        public b: Board = new Board();
        public y: number;
        public x: number;
        constructor(){
            this.x = 20;
            this.y = this.b.y;
        }
    }
}

当我在浏览器中运行它时,控制台显示错误"trafficMap is not a constructor"。我认为这是因为在Board类中,当它尝试创建trafficMap的实例时,由于代码尚未到达trafficMap类,它还没有加载它的内容。因此,我认为我需要像异步构造函数这样的东西。如果有任何错误,请纠正我。

1 个答案:

答案 0 :(得分:0)

  

因此,我认为我需要类似异步构造函数的东西。如果有任何错误,请纠正我。

没有异步构造函数。

修复

当你有两个相互依赖的课程时,你真正拥有的是三个课程。两个独立的(你已经拥有)和一个orchestrator(你们两个之间真正的耦合)。

  • 最快的修复:只需创建一个结合了所有三个功能的类。
  • 更好:根据需要将功能分为三个类。