2017-09-08 1 views
0

저는 angular2 (draw2d-wrapper)에 draw2d를 사용하고 있습니다. 나는 그 (것)들에게서 종류를 확장하는 시험이다. 내가 var t = new Table();Angular2 (typescript)의 JavaScript NAME 속성을 덮어 씁니다.

을 내 코드에

export class Table extends (draw2d.shape.layout.VerticalLayout as { new(): any }) { 
    static NAME: "Table"; 
    /*Some code*/ 
} 

는 t.NAME 속성은 "draw2d.shape.layout.VerticalLayout"로왔다.

angular2 typescript 코드에서이 JavaScript 속성을 무시할 수 있습니까?

답변

0

테이블 인스턴스의 속성에 액세스하려고하므로 실제로 정적 속성이 아닙니다. 귀하의 예제를 단순화,이 작품 : 나는 부분적으로 문제를 해결 draw2d.shape.layout.VerticalLayout

+0

에서 유도하기위한 작업 같은 기대

class VerticalLayout { NAME = "VerticalLayout"; } class Table extends VerticalLayout { NAME = "Table"; } new Table().NAME; // Table 

, 지금 문제는 방법 것은 (draw2d.shape의 슈퍼 클래스입니다. layout.VerticalLayout) eval 메서드를 사용하여 객체의 새 인스턴스를 만듭니다. var o = eval ("new"+ element.type + "()"); 이름이 "draw2d ....."인 경우 오류가 없지만 하위 클래스에서 재정의하는 메서드가 호출되지 않습니다. element.type이 "Table"인 경우이 오류 메시지가 표시됩니다. ""id ... rshal이있는 그림 유형 'Tabela'를 draw2d.io.json.Reader로 인스턴스화 할 수 없습니다. –

관련 문제