Jak obsługuje się rzutowanie tekstu w TypeScript lub JavaScript?
Powiedz, że mam następujący kod 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";
}
}
}
gdzie SymbolInfo
jest klasa podstawowa. Jak obsługiwać rzutowanie typu od SymbolInfo
do MarkerSymbolInfo
w TypeScript lub JavaScript?
casting
typescript
Klaus Nji
źródło
źródło
Nazywa się to asercją typu w TypeScript, a od TypeScript 1.6 istnieją dwa sposoby na wyrażenie tego:
Obie alternatywy są funkcjonalnie identyczne . Powodem wprowadzenia
as
-syntax jest konflikt oryginalnej oryginalnej składni z JSX , patrz dyskusja projektowa tutaj .Jeśli jesteś w stanie dokonać wyboru, po prostu skorzystaj ze składni, w której czujesz się bardziej komfortowo. Osobiście wolę
as
-syntax, ponieważ czytanie i pisanie jest bardziej płynne.źródło
W maszynopisie można wykonać
instanceof
sprawdzenie instrukcji if i będziesz mieć dostęp do tej samej zmiennej zTyped
właściwościami.Powiedzmy, że
MarkerSymbolInfo
ma właściwość o nazwiemarker
. Możesz wykonać następujące czynności:Miłą sztuczką jest uzyskanie wystąpienia zmiennej przy użyciu tej samej zmiennej bez konieczności ponownego przypisywania jej do innej nazwy zmiennej.
Sprawdź te dwa zasoby, aby uzyskać więcej informacji:
Instancja TypeScript i Instancja JavaScript
źródło