programing tip

TypeScript 또는 JavaScript 유형 캐스팅

itbloger 2020. 6. 13. 10:31
반응형

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

반응형