반응형
TypeScript 또는 JavaScript 유형 캐스팅
TypeScript 또는 Javascript에서 유형 캐스팅을 어떻게 처리합니까?
다음 TypeScript 코드가 있다고 가정 해보십시오.
module Symbology {
export class SymbolFactory {
createStyle( symbolInfo : SymbolInfo) : any {
if (symbolInfo == null)
{
return null;
}
if (symbolInfo.symbolShapeType === "marker") {
// how to cast to MarkerSymbolInfo
return this.createMarkerStyle((MarkerSymbolInfo) symbolInfo);
}
}
createMarkerStyle(markerSymbol : MarkerSymbolInfo ): any {
throw "createMarkerStyle not implemented";
}
}
}
SymbolInfo
기본 클래스는 어디에 있습니까 ? 어떻게에서 타입 캐스팅 처리하나요 SymbolInfo
까지를 MarkerSymbolInfo
타이프 또는 자바 스크립트?
다음과 같이 캐스팅 할 수 있습니다.
return this.createMarkerStyle(<MarkerSymbolInfo> symbolInfo);
또는 tsx 모드와 호환되도록하려면 다음과 같이하십시오.
return this.createMarkerStyle(symbolInfo as MarkerSymbolInfo);
이것은 컴파일 타임 캐스트이며 런타임 캐스트가 아니라는 점을 기억하십시오.
이것을 TypeScript에서 타입 어설 션 이라고 하며, TypeScript 1.6부터이를 표현하는 두 가지 방법이 있습니다.
// Original syntax
var markerSymbolInfo = <MarkerSymbolInfo> symbolInfo;
// Newer additional syntax
var markerSymbolInfo = symbolInfo as MarkerSymbolInfo;
두 대안 모두 기능적으로 동일합니다 . -syntax 를 도입 한 이유 as
는 원래 구문이 JSX 와 충돌 했기 때문 입니다. 여기서 디자인 토론을 참조 하십시오 .
당신이 선택할 수있는 위치에 있다면, 당신이 더 편안하다고 느끼는 구문을 사용하십시오. 나는 개인적 as
으로 읽고 쓰는 것이 더 유창하다고 느끼기 때문에 -syntax를 선호합니다 .
참고 URL : https://stackoverflow.com/questions/13204759/typescript-or-javascript-type-casting
반응형
'programing tip' 카테고리의 다른 글
Visual Studio 2015 Community Edition 설치 중 여러 오류 (0) | 2020.06.13 |
---|---|
LinearLayout을 스크롤 가능하게 만들려면 어떻게합니까? (0) | 2020.06.13 |
OSX에서 $ PATH (.bash_profile)를 어떻게 편집합니까? (0) | 2020.06.13 |
JPA OneToMany가 하위를 삭제하지 않음 (0) | 2020.06.13 |
Python 목록의 값으로 .csv 파일 만들기 (0) | 2020.06.13 |