Respuestas:
La diferencia es que as Circle
funciona en archivos TSX, pero <Circle>
entra en conflicto con la sintaxis JSX. as
fue introducido por este motivo.
Por ejemplo, el siguiente código en un .tsx
archivo:
var circle = <Circle> createShape("circle");
Resultará en el siguiente error:
error TS17002: Etiqueta de cierre JSX correspondiente esperada para 'Circle'.
Sin embargo, as Circle
funcionará bien.
Usar as Circle
de ahora en adelante. Es la sintaxis recomendada .
Desde la página Wiki : "Novedades en TypeScript [1.6]":
Nueva
.tsx
extensión de archivo yas
operadorTypeScript 1.6 presenta una nueva
.tsx
extensión de archivo. Esta extensión hace dos cosas: habilita JSX dentro de los archivos TypeScript, y hace que el nuevoas
operador sea la forma predeterminada de emitir (eliminando cualquier ambigüedad entre las expresiones JSX y el operador de conversión de prefijo TypeScript). Por ejemplo:var x = <any> foo; // is equivalent to: var x = foo as any;