1. ホーム
  2. casting

[解決済み】TypeScriptまたはJavaScriptのタイプキャスト

2022-04-04 16:17:47

質問

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 TypeScriptかJavascriptか?

どのように解決するのですか?

このようにキャストすることができます。

return this.createMarkerStyle(<MarkerSymbolInfo> symbolInfo);

あるいは、tsxモードと互換性を持たせたい場合は、このように。

return this.createMarkerStyle(symbolInfo as MarkerSymbolInfo);

ただ、これはコンパイル時のキャストであり、実行時のキャストではないことに注意してください。