¿Cómo se maneja la conversión de tipos en TypeScript o Javascript?
Digamos que tengo el siguiente 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";
}
}
}
donde SymbolInfoes una clase base ¿Cómo manejo la conversión de tipos de SymbolInfoa MarkerSymbolInfoen TypeScript o Javascript?
casting
typescript
Klaus Nji
fuente
fuente

Esto se llama aserción de tipo en TypeScript, y desde TypeScript 1.6, hay dos formas de expresar esto:
Ambas alternativas son funcionalmente idénticas . La razón para introducir la
assintaxis es que la sintaxis original está en conflicto con JSX , vea la discusión de diseño aquí .Si está en condiciones de elegir, simplemente use la sintaxis con la que se sienta más cómodo. Personalmente prefiero la
assintaxis, ya que se siente más fluido para leer y escribir.fuente
En mecanografiado es posible hacer una
instanceofverificación en una declaración if y tendrá acceso a la misma variable con lasTypedpropiedades.Entonces, digamos que
MarkerSymbolInfotiene una propiedad llamadamarker. Puedes hacer lo siguiente:Es un buen truco obtener la instancia de una variable usando la misma variable sin necesidad de reasignarla a un nombre de variable diferente.
Consulte estos dos recursos para obtener más información:
TypeScript instanceof & JavaScript instanceof
fuente