Risposte:
La differenza è che as Circlefunziona nei file TSX, ma è in <Circle>conflitto con la sintassi JSX. asè stato introdotto per questo motivo.
Ad esempio, il seguente codice in un .tsxfile:
var circle = <Circle> createShape("circle");
Si verificherà il seguente errore:
errore TS17002: tag di chiusura JSX corrispondente atteso per "Cerchio".
Tuttavia, as Circlefunzionerà bene.
Utilizzare as Circleda ora in poi. È la sintassi consigliata .
Dalla pagina Wiki : "Novità di TypeScript [1.6]":
Nuova
.tsxestensione easoperatore del fileTypeScript 1.6 introduce una nuova
.tsxestensione di file. Questa estensione fa due cose: abilita JSX all'interno dei file TypeScript e rende il nuovoasoperatore 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;