TypeScript là gì và tại sao sử dụng nó thay cho JavaScript?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
1.373 lượt xem

TypeScript là một siêu tập hợp JavaScript chủ yếu cung cấp kiểu gõ tĩnh (static-typing), các lớp và interface tùy chọn. Một trong những lợi ích lớn là cho phép IDE cung cấp môi trường phong phú hơn để phát hiện các lỗi phổ biến khi bạn mã. Đối với một dự án JavaScript lớn, việc áp dụng TypeScript có thể dẫn đến phần mềm mạnh mẽ hơn, trong khi vẫn có thể triển khai ở nơi một ứng dụng JavaScript thông thường sẽ chạy.

Chi tiết:

  • TypeScript hỗ trợ các tiêu chuẩn ECMAScript mới và biên dịch chúng thành các ECMAScript cũ hơn mà bạn chọn. Điều này có nghĩa là bạn có thể sử dụng các tính năng của ES2015 và hơn thế nữa, như module, hàm lambda, lớp, toán tử spread, destructuring, ...
  • Mã JavaScript là mã TypeScript hợp lệ; TypeScript là một siêu tập hợp (superset) của JavaScript.
  • TypeScript thêm các kiểu hỗ trợ cho JavaScript. Hệ thống kiểu của TypeScript tương đối phong phú và bao gồm: interface, enums, kiểu hybrid, generic, kiểu union (liên hợp) intersection (giao nhau), các Access modifiers và nhiều hơn nữa.
  • Trải nghiệm việc development với TypeScript là một cải tiến lớn so với JavaScript. IDE được trình biên dịch TypeScript thông báo trong thời gian thực về thông tin kiểu của nó.
  • Khi bật kiểm tra strict null (cờ trình biên dịch --strictNullChecks), trình biên dịch TypeScript sẽ không cho phép gán undefined cho một biến trừ khi bạn khai báo rõ ràng nó thuộc kiểu nullable.
  • Để sử dụng TypeScript, bạn cần một quá trình xây dựng để biên dịch sang mã JavaScript. Trình biên dịch TypeScript có thể nội tuyến thông tin bản đồ nguồn trong các tệp .js được tạo hoặc tạo các tệp .map riêng biệt. Điều này giúp bạn có thể đặt các breakpoint và kiểm tra các biến trong runtime trực tiếp trên mã TypeScript của mình.
  • TypeScript là mã nguồn mở (Apache 2 được cấp phép, xem github) và được hỗ trợ bởi Microsoft. Anders Hejlsberg, kiến ​​trúc sư chính của C # đang chỉ đạo dự án.
{{login.error}}