Câu trả lời:
Sự khác biệt là as Circlehoạt động trong các tệp TSX, nhưng <Circle>xung đột với cú pháp JSX. asđã được giới thiệu vì lý do này.
Ví dụ: đoạn mã sau trong một .tsxtệp:
var circle = <Circle> createShape("circle");
Sẽ dẫn đến lỗi sau:
lỗi TS17002: Dự kiến thẻ đóng JSX tương ứng cho 'Vòng tròn'.
Tuy nhiên, as Circlesẽ làm việc tốt.
Sử dụng as Circletừ bây giờ. Đó là cú pháp được đề xuất .
Từ trang Wiki : "Có gì mới trong TypeScript [1.6]":
Mới
.tsxmở rộng tập tin vàasđiều hànhTypeScript 1.6 giới thiệu một
.tsxphần mở rộng tập tin mới . Phần mở rộng này thực hiện hai điều: nó cho phép JSX bên trong các tệp TypeScript và nó làm choastoán tử mới trở thành cách mặc định (loại bỏ bất kỳ sự mơ hồ nào giữa các biểu thức JSX và toán tử đúc tiền tố TypeScript). Ví dụ:var x = <any> foo; // is equivalent to: var x = foo as any;