2014-10-31 4 views
1

W3C의 권고에 메소드 getSVGDocument()는 SVGDocument하지만 lib.d.ts의 코드 반환해야 따르면 Typescript에서 SVGDocument를 사용하는 방법?

interface GetSVGDocument { 
    getSVGDocument(): Document; 
} 

그래서 내가 그걸 어떻게 할 수

를? :

var svgDoc:SVGDocument= document.getElementById('myId').getSVGDocument(); 
var svgElement:SVGElement = svgDoc.getElementById("myElement"); 
... further manipulations on svgElement 

더 일반적으로 TypeScript의 SVG 구현을 통과 했습니까? 아니면 뭔가 빠졌습니까? SVG dom의 적절한 구현이 있습니까? 아니면 구현할 수 있습니까?

답변

0

w3 사양에 따르면 SVGDocument는 Document를 구현하고 title, referrer, rootElement 및 기타 내용을 추가합니다. 이들 모두는 TypeScript 용 Document 인터페이스에 정의되어 있으므로 아무 것도 변경하지 않고 이미 사용할 수 있습니다.

TypeScript의 document.rootElement는 w3 사양과 마찬가지로 SVGSVGElement를 반환합니다.

TypeScript는 구조적 입력을 사용하기 때문에 (그리고 유형이 여기에 일치하므로) 즉시 사용할 수 있습니다.

편집 : 때문에 lib.d.ts의 은 당신이 당신이이 컴파일 않기 때문에 조금 불행한 일이다 SVGDocument에 사용할 수 없습니다 예를 들어 document.forms을 할 수있는 문제가 할 다음과 같이 구성되어있다 방법은 ..

3

타이프 스크립트 Document 유형은 SVGDocument 비교, 그래서 당신은 Document을 사용하는 것이 괜찮을한다. 요소가 올바른 유형 (SVGElement 또는 SVGSVGElement)으로 형 변환되었는지 확인해야합니다.

또한 Typescript에서 이중 캐스팅을 할 수 있습니다. 이를 통해 요소/도큐멘트를 any으로 캐스팅하고 이후 문제가 발생할 경우 필요한 문서/요소 유형으로 다시 캐스팅 할 수 있습니다.

관련 문제