casting - tamaño - Tipo de letra o JavaScript de fundición
tipo de letra en css (2)
Esto se llama aserción de tipo en TypeScript, y desde TypeScript 1.6, hay dos formas de expresar esto:
// Original syntax
var markerSymbolInfo = <MarkerSymbolInfo> symbolInfo;
// Newer additional syntax
var markerSymbolInfo = symbolInfo as MarkerSymbolInfo;
Ambas alternativas son funcionalmente idénticas . La razón para introducir as
-sintaxis es que la sintaxis original está en conflicto con JSX , consulte la discusión de diseño here .
Si está en posición de elegir, simplemente use la sintaxis con la que se sienta más cómodo. Personalmente prefiero la as
-ntantax ya que se siente más fluido para leer y escribir.
¿Cómo maneja un tipo de conversión 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 SymbolInfo
es una clase base. ¿Cómo manejo el encasillado de SymbolInfo
a MarkerSymbolInfo
en TypeScript o Javascript?
Puedes lanzar de esta manera:
return this.createMarkerStyle(<MarkerSymbolInfo> symbolInfo);
O así si quieres ser compatible con el modo tsx:
return this.createMarkerStyle(symbolInfo as MarkerSymbolInfo);
Solo recuerde que este es un elenco en tiempo de compilación, y no un elenco en tiempo de ejecución.