2017-11-06 2 views
0

내 타이프 스크립트 파일 중 하나에는 생성자가있는 2 개의 클래스가 있습니다. 그런 다음 각 클래스 내부에서 클래스 클래스의 인스턴스를 가져와야합니다. 나는 다음과 같은 코드를 가지고 :Typescript의 비동기 생성자

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의 인스턴스를 만들려고 시도했기 때문에 아직 내용을로드하지 않았기 때문에 생각합니다. 따라서 비동기 생성자와 같은 것이 필요할 것이라고 생각합니다. 잘못하면 저를 시정하십시오.

+0

정답을 사용하지 않으려면 프록시로 종속성 주입을 수행 할 수 있습니다. –

답변

0

따라서 비동기 생성자가 필요하다고 생각합니다. 잘못하면 저를 시정하십시오.

비동기 생성자가 없습니다.

당신이 서로에 따라 두 개의 클래스를 수정

은, 당신이 정말로 무엇을 세 가지 클래스입니다. 두 개의 독립적 인 것 (이미 가지고있는 것)과 하나의 오케 스트레이터 (두 가지 사이의 진정한 결합).

  • 가장 빠른 수정 : 모든 세 가지 기능을 결합한 하나의 클래스 만 만들면됩니다.
  • 더 나은 기능 : 필요에 따라 세 가지 기능으로 기능을 분리합니다.
+0

기능에 따라 기능을 분리합니까? –

+0

제 경우에는'trafficMap' 클래스의 모든 기능이'Board'의 설정에 달려 있고'Board'는'trafficMap'의 함수를 실행하여 어떤 일을하기 위해'trafficMap'의 인스턴스를 얻어야합니다. ? –