Câu trả lời:
Sự khác biệt là as Circle
hoạ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 .tsx
tệ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 Circle
sẽ làm việc tốt.
Sử dụng as Circle
từ bây giờ. Đó là cú pháp được đề xuất .
Từ trang Wiki : "Có gì mới trong TypeScript [1.6]":
Mới
.tsx
mở rộng tập tin vàas
điều hànhTypeScript 1.6 giới thiệu một
.tsx
phầ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 choas
toá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;