Risposte:
La differenza è che as Circle
funziona nei file TSX, ma è in <Circle>
conflitto con la sintassi JSX. as
è stato introdotto per questo motivo.
Ad esempio, il seguente codice in un .tsx
file:
var circle = <Circle> createShape("circle");
Si verificherà il seguente errore:
errore TS17002: tag di chiusura JSX corrispondente atteso per "Cerchio".
Tuttavia, as Circle
funzionerà bene.
Utilizzare as Circle
da ora in poi. È la sintassi consigliata .
Dalla pagina Wiki : "Novità di TypeScript [1.6]":
Nuova
.tsx
estensione eas
operatore del fileTypeScript 1.6 introduce una nuova
.tsx
estensione di file. Questa estensione fa due cose: abilita JSX all'interno dei file TypeScript e rende il nuovoas
operatore il modo predefinito per eseguire il cast (rimuovendo qualsiasi ambiguità tra le espressioni JSX e l'operatore cast del prefisso TypeScript). Per esempio:var x = <any> foo; // is equivalent to: var x = foo as any;