Chạy ES6/7 trên JVM với TypeScript và Vert.x
vertx-lang-typescript cho phép bạn chạy các verticle TypeScript trên JVM, mang các tính năng ES6/7 như arrow function, class và toán tử lũy thừa lên Vert.x 3.2.

Bản phát hành Vert.x 3.2 mới nhất, kết hợp với vertx-lang-typescript 1.1.0, cho phép viết các verticle Vert.x bằng TypeScript và thực thi trực tiếp trên JVM. Thư viện biên dịch TypeScript sang JavaScript ngay lúc chạy và cung cấp định nghĩa kiểu cho API JavaScript của Vert.x, mang lại tính năng tự động hoàn thành mã và tài liệu nội tuyến trong IDE.
Đây không chỉ là về hệ thống kiểu của TypeScript—mà là về việc đưa các tính năng ECMAScript 6 và 7 vào stack dựa trên JVM của bạn ngay hôm nay. Verticle ví dụ trong bài viết minh họa chín tính năng ES6/7 trong một máy chủ HTTP duy nhất:
- Arrow function cho trình xử lý yêu cầu
- Biến phạm vi khối với
let - Giá trị tham số mặc định
- Tham số rest và toán tử spread
- Vòng lặp
for…of - Chuỗi mẫu với nội suy
- Lớp và kế thừa
- Toán tử lũy thừa ES7 (
**)
Bạn chạy verticle bằng một lệnh duy nhất: vertx run es7verticle.ts. Không cần gói NPM, không cần bước build riêng. Đó là một quy trình làm việc sạch hơn so với cách tiếp cận dựa trên Babel mà Vert.x từng khuyến nghị, yêu cầu npm run build rồi npm start và khóa bạn vào một dự án đơn ngôn ngữ.
Sự đánh đổi: vertx-lang-typescript hiện chỉ hỗ trợ toán tử lũy thừa từ ES7. Decorator của TypeScript 1.7 bị vô hiệu hóa vì chúng vẫn còn thử nghiệm. Nếu bạn cần toàn bộ đặc tả ES7, bạn sẽ phải đợi các bản phát hành sau hoặc tiếp tục dùng Babel.
Đối với các ứng dụng Vert.x lớn với nhiều verticle, kiểu tĩnh và hỗ trợ IDE là những lợi ích thực sự. Thư viện hoạt động với Sublime, VS Code, Eclipse và Atom. Và vì vertx-lang-typescript biên dịch ngay lúc chạy, bạn có thể kết hợp các verticle TypeScript với Java hoặc JavaScript trong cùng một dự án—điều mà thiết lập Babel dựa trên NPM không thể làm được.
Nếu bạn đã dùng Vert.x và muốn cú pháp JavaScript hiện đại mà không cần rời khỏi JVM, đây là thứ đáng xem. Chỉ đừng mong đợi một sân chơi ES7 đầy đủ ngay bây giờ.
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.