Odpowiedzi:
Różnica polega na tym, że as Circle
działa w plikach TSX, ale jest w <Circle>
konflikcie ze składnią JSX. as
został wprowadzony z tego powodu.
Na przykład następujący kod w .tsx
pliku:
var circle = <Circle> createShape("circle");
Spowoduje to następujący błąd:
błąd TS17002: Oczekiwano odpowiadającego tagu zamykającego JSX dla „Circle”.
Jednak as Circle
będzie działać dobrze.
Używaj as Circle
od teraz. To zalecana składnia.
Ze strony Wiki : „Co nowego w TypeScript [1.6]”:
Nowe
.tsx
rozszerzenie pliku ias
operatorTypeScript 1.6 wprowadza nowe
.tsx
rozszerzenie pliku. To rozszerzenie robi dwie rzeczy: włącza JSX w plikach TypeScript i sprawia, że nowyas
operator jest domyślnym sposobem rzutowania (eliminując wszelkie niejednoznaczności między wyrażeniami JSX a operatorem rzutowania przedrostka TypeScript). Na przykład:var x = <any> foo; // is equivalent to: var x = foo as any;