Odpowiedzi:
Różnica polega na tym, że as Circledziała w plikach TSX, ale jest w <Circle>konflikcie ze składnią JSX. aszostał wprowadzony z tego powodu.
Na przykład następujący kod w .tsxpliku:
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 Circlebędzie działać dobrze.
Używaj as Circleod teraz. To zalecana składnia.
Ze strony Wiki : „Co nowego w TypeScript [1.6]”:
Nowe
.tsxrozszerzenie pliku iasoperatorTypeScript 1.6 wprowadza nowe
.tsxrozszerzenie pliku. To rozszerzenie robi dwie rzeczy: włącza JSX w plikach TypeScript i sprawia, że nowyasoperator 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;