casting - commands - typescript sample project



Fundição do tipo TypeScript ou JavaScript (2)

Isso é chamado de declaração de tipo no TypeScript e, como o TypeScript 1.6, há duas maneiras de expressar isso:

// Original syntax
var markerSymbolInfo = <MarkerSymbolInfo> symbolInfo;

// Newer additional syntax
var markerSymbolInfo = symbolInfo as MarkerSymbolInfo;

Ambas as alternativas são funcionalmente idênticas . A razão para introduzir a as sintaxe é que a sintaxe original entrou em conflito com o JSX , veja a discussão do projeto here .

Se você estiver em uma posição para escolher, basta usar a sintaxe com a qual você se sente mais confortável. Eu pessoalmente prefiro a síntax como se sente mais fluente para ler e escrever.

https://code.i-harness.com

Como alguém manipula a conversão de tipos em TypeScript ou Javascript?

Digamos que eu tenha o seguinte código 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";
        }              

    }
}

onde SymbolInfo é uma classe base. Como faço para lidar com typecasting de SymbolInfo para MarkerSymbolInfo em TypeScript ou Javascript?


Você pode conjurar assim:

return this.createMarkerStyle(<MarkerSymbolInfo> symbolInfo);

Ou assim, se você quiser ser compatível com o modo tsx:

return this.createMarkerStyle(symbolInfo as MarkerSymbolInfo);

Apenas lembre-se que este é um elenco de compilação, e não um elenco de tempo de execução.





typescript