TypeScript

Bách khoa toàn thư mở Wikipedia
(đổi hướng từ Typescript)
Bước tới điều hướng Bước tới tìm kiếm
TypeScript
Typescript logo 2020.svg
Mẫu hìnhMulti-paradigm: functional, generic, imperative, object-oriented
Thiết kế bởiMicrosoft
Nhà phát triểnMicrosoft
Xuất hiện lần đầu1 tháng 10 năm 2012; 8 năm trước (2012-10-01)[1]
Phiên bản ổn định
4.0.5 / 26 tháng 10 năm 2020; 4 tháng trước (2020-10-26)[2]
Bản xem thử
4.1 Beta / 18 tháng 9 năm 2020; 5 tháng trước (2020-09-18)[2]
Kiểm tra kiểuDuck, gradual, structural[3]
Giấy phépApache License 2.0
Phần mở rộng tên tập tin.ts,.tsx
Trang mạngwww.typescriptlang.org
Ảnh hưởng bởi
C#, Java, JavaScript
Ảnh hưởng tới
AtScript, AssemblyScript

TypeScript là một ngôn ngữ lập trình được phát triển và duy trì bởi Microsoft. Nó là một tập hợp siêu cú pháp nghiêm ngặt của JavaScript và thêm tính năng kiểu tĩnh tùy chọn vào ngôn ngữ. TypeScript được thiết kế để phát triển các ứng dụng lớn và chuyển đổi sang JavaScript.[4] Vì TypeScript là một siêu tập hợp JavaScript, các chương trình JavaScript hiện có cũng là các chương trình TypeScript hợp lệ.

TypeScript có thể được sử dụng để phát triển các ứng dụng JavaScript cho cả thực thi phía máy khách và phía máy chủ (như với Node.js hoặc Deno). Có nhiều tùy chọn có sẵn để biên dịch. Có thể sử dụng Trình kiểm tra TypeScript mặc định,[5] hoặc có thể sử dụng trình biên dịch Babel để chuyển đổi TypeScript sang JavaScript.

TypeScript hỗ trợ các tệp định nghĩa có thể chứa thông tin kiểu của các thư viện JavaScript hiện có, giống như tệp tiêu đề C ++ có thể mô tả cấu trúc của tệp đối tượng hiện có. Điều này cho phép các chương trình khác sử dụng các giá trị được xác định trong tệp như thể chúng là các thực thể TypeScript được nhập tĩnh. Có các tệp tiêu đề của bên thứ ba cho các thư viện phổ biến như jQuery, MongoDBD3.js. Tiêu đề TypeScript cho các mô-đun cơ bản của Node.js cũng có sẵn, cho phép phát triển các chương trình Node.js trong TypeScript.[6]

Bản thân trình biên dịch TypeScript được viết bằng TypeScript và được biên dịch sang JavaScript. Nó được cấp phép theo Giấy phép Apache 2.0. TypeScript được bao gồm như một ngôn ngữ lập trình hạng nhất trong Microsoft Visual Studio 2013 Update 2 trở lên, bên cạnh C # và các ngôn ngữ Microsoft khác.[7] Một phần mở rộng chính thức cho phép Visual Studio 2012 cũng hỗ trợ TypeScript.[8] Anders Hejlsberg, kiến trúc sư chính của C # và người tạo ra DelphiTurbo Pascal, đã nghiên cứu sự phát triển của TypeScript.[9][10][11][12]

Lịch sử[sửa | sửa mã nguồn]

TypeScript được công bố lần đầu tiên vào tháng 10 năm 2012 (ở phiên bản 0.8), sau hai năm phát triển nội bộ tại Microsoft.[13][14] Ngay sau khi thông báo, Miguel de Icaza đã ca ngợi bản thân ngôn ngữ này, nhưng chỉ trích việc thiếu hỗ trợ IDE trưởng thành ngoài Microsoft Visual Studio, vốn chưa có trên Linux và OS X vào thời điểm đó.[15][16] Ngày nay, có hỗ trợ trong các IDE khác, đặc biệt là trong Eclipse, thông qua một trình cắm thêm do Palantir Technologies đóng góp.[17][18] Các trình soạn thảo văn bản khác nhau, bao gồm Emacs, Vim, Webstorm, Atom [19]Visual Studio Code của riêng Microsoft cũng hỗ trợ TypeScript.[20]

TypeScript 0.9, được phát hành vào năm 2013, đã thêm hỗ trợ cho generic.[21] TypeScript 1.0 được phát hành tại hội nghị nhà phát triển Build của Microsoft vào năm 2014.[22] Visual Studio 2013 Update 2 cung cấp hỗ trợ tích hợp cho TypeScript.[23]

Vào tháng 7 năm 2014, nhóm phát triển đã công bố một trình biên dịch TypeScript mới, đạt hiệu suất gấp 5 lần. Đồng thời, mã nguồn, ban đầu được lưu trữ trên CodePlex, đã được chuyển sang GitHub.[24]

Vào ngày 22 tháng 9 năm 2016, TypeScript 2.0 đã được phát hành; nó đã giới thiệu một số tính năng, bao gồm khả năng cho các lập trình viên tùy ý ngăn các biến được gán giá trị null,[25] đôi khi được gọi là sai lầm hàng tỷ đô la.

TypeScript 3.0 được phát hành vào ngày 30 tháng 7 năm 2018,[26] mang đến nhiều bổ sung ngôn ngữ như bộ giá trị trong tham số phần còn lại và biểu thức trải rộng, tham số phần còn lại với các loại tuple, tham số rest chung, v.v.[27]

TypeScript 4.0 được phát hành vào ngày 20 tháng 8 năm 2020.[28] Mặc dù 4.0 không giới thiệu bất kỳ thay đổi đột phá nào, nhưng nó đã bổ sung các tính năng ngôn ngữ như Hệ thống JSX tùy chỉnh và kiểu Tuple Đa dạng.[28]

Thiết kế[sửa | sửa mã nguồn]

TypeScript bắt nguồn từ những thiếu sót của JavaScript đối với việc phát triển các ứng dụng quy mô lớn ở cả Microsoft và các khách hàng bên ngoài của công ty này.[29] Những thách thức đối với việc xử lý mã JavaScript phức tạp đã dẫn đến nhu cầu về công cụ tùy chỉnh để dễ dàng phát triển các thành phần trong ngôn ngữ này.[30]

Các nhà phát triển TypeScript đã tìm kiếm một giải pháp không phá vỡ khả năng tương thích với tiêu chuẩn và hỗ trợ đa nền tảng của nó. Biết rằng đề xuất tiêu chuẩn ECMAScript hiện tại hứa hẹn hỗ trợ trong tương lai cho lập trình dựa trên lớp, TypeScript đã dựa trên đề xuất đó. Điều đó dẫn đến một trình biên dịch JavaScript với một tập hợp các phần mở rộng ngôn ngữ cú pháp, một tập hợp siêu dựa trên đề xuất, biến các phần mở rộng thành JavaScript thông thường. Theo nghĩa này, TypeScript là bản xem trước những gì mong đợi của ECMAScript 2015. Một khía cạnh duy nhất không có trong đề xuất, nhưng được thêm vào TypeScript, là tính năng nhập tĩnh tùy chọn [31] cho phép phân tích ngôn ngữ tĩnh, tạo điều kiện hỗ trợ công cụ và IDE.

Hỗ trợ ECMAScript 2015[sửa | sửa mã nguồn]

TypeScript bổ sung hỗ trợ cho các tính năng như lớp, mô-đun và cú pháp hàm mũi tên như được định nghĩa trong tiêu chuẩn ECMAScript 2015.

Xem thêm[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]

  1. ^ “TypeScript”. CodePlex. Truy cập ngày 26 tháng 4 năm 2015.
  2. ^ a ă “Announcing TypeScript 4.0”. TypeScript. 22 tháng 9 năm 2020.
  3. ^ “Type Compatibility”. TypeScript. Truy cập ngày 21 tháng 3 năm 2018.
  4. ^ Bright, Peter (3 tháng 10 năm 2012). “Microsoft TypeScript: the JavaScript we need, or a solution looking for a problem?”. Ars Technica. Condé Nast. Truy cập ngày 26 tháng 4 năm 2015.
  5. ^ “TypeScript Programming with Visual Studio Code”. code.visualstudio.com (bằng tiếng Anh). Truy cập ngày 12 tháng 2 năm 2019.
  6. ^ “borisyankov/DefinitelyTyped”. GitHub. Truy cập ngày 26 tháng 4 năm 2015.
  7. ^ TypeScript Homepage, "Visual Studio includes TypeScript in the box, starting with Visual Studio 2013 Update 2"
  8. ^ TypeScript 1.0 Tools for Visual Studio 2012
  9. ^ Foley, Mary Jo (1 tháng 10 năm 2012). “Microsoft takes the wraps off TypeScript, a superset of JavaScript”. ZDNet. CBS Interactive. Truy cập ngày 26 tháng 4 năm 2015.
  10. ^ Somasegar, S. (1 tháng 10 năm 2012). “Somasegar's blog”. Microsoft. Truy cập ngày 26 tháng 4 năm 2015.
  11. ^ Baxter-Reynolds, Matt (1 tháng 10 năm 2012). “Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?”. ZDNet. Truy cập ngày 26 tháng 4 năm 2015.
  12. ^ Jackson, Joab (1 tháng 10 năm 2012). “Microsoft Augments Javascript for Large-scale Development”. CIO. IDG Enterprise. Truy cập ngày 26 tháng 4 năm 2015.
  13. ^ “Microsoft augments JavaScript for large-scale development”. InfoWorld. IDG. 1 tháng 10 năm 2012. Truy cập ngày 26 tháng 4 năm 2015.
  14. ^ Turner, Jonathan (2 tháng 4 năm 2014). “Announcing TypeScript 1.0”. TypeScript Language team blog. Microsoft. Truy cập ngày 26 tháng 4 năm 2015.
  15. ^ Miguel de Icaza (1 tháng 10 năm 2012). “TypeScript: First Impressions”. Truy cập ngày 12 tháng 10 năm 2012. But TypeScript only delivers half of the value in using a strongly typed language to Unix developers: strong typing. Intellisense, code completion and refactoring are tools that are only available to Visual Studio Professional users on Windows. There is no Eclipse, MonoDevelop or Emacs support for any of the language features
  16. ^ “Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?”. ZDNet. 1 tháng 10 năm 2012. Truy cập ngày 12 tháng 10 năm 2012. And I think this is a pretty big misstep. If you're building web apps that run on anything other than Windows, you're likely using a Mac and most likely not using Visual Studio. You need the Visual Studio plug-in to get the IntelliSense. All you get without Visual Studio is the strong-typing. You don't get the productivity benefits you get from IntelliSense..
  17. ^ “TypeScript-Unterstützung für Eclipse”. heise Developer. 6 tháng 8 năm 2013. Truy cập ngày 26 tháng 4 năm 2015.
  18. ^ “TypeScript”. Eclipse Marketplace. Eclipse Foundation. Truy cập ngày 26 tháng 4 năm 2015.
  19. ^ “TypeStrong: The only TypeScript package you will ever need”. Truy cập ngày 21 tháng 7 năm 2016.
  20. ^ Hillar, Gastón (14 tháng 5 năm 2013). “Working with TypeScript in Visual Studio 2012”. Dr. Dobb's Journal. Truy cập ngày 26 tháng 4 năm 2015.
  21. ^ “TypeScript 0.9 arrives with new compiler, support for generics”. The Register. 18 tháng 6 năm 2013. Truy cập ngày 26 tháng 4 năm 2015.
  22. ^ Hejlsberg, Anders (2 tháng 4 năm 2014). “TypeScript”. Channel 9. Microsoft. Truy cập ngày 26 tháng 4 năm 2015.
  23. ^ Jackson, Joab (25 tháng 2 năm 2014). “Microsoft TypeScript graduates to Visual Studio”. PC World. IDG. Truy cập ngày 26 tháng 4 năm 2015.
  24. ^ Turner, Jonathan (21 tháng 7 năm 2014). “New Compiler and Moving to GitHub”. TypeScript Language team blog. Microsoft. Truy cập ngày 26 tháng 4 năm 2015.
  25. ^ Bright, Peter (22 tháng 9 năm 2016). “TypeScript, Microsoft's JavaScript for big applications, reaches version 2.0”. Ars Technica. Condé Nast. Truy cập ngày 22 tháng 9 năm 2016.
  26. ^ “Announcing TypeScript 3.0”. 30 tháng 7 năm 2018. Truy cập ngày 16 tháng 3 năm 2020.
  27. ^ “TypeScript 3.0”. 30 tháng 7 năm 2018. Truy cập ngày 16 tháng 3 năm 2020.
  28. ^ a ă “Announcing TypeScript 4.0”. TypeScript (bằng tiếng Anh). 20 tháng 8 năm 2020. Truy cập ngày 30 tháng 10 năm 2020.
  29. ^ Anders Hejlsberg (5 tháng 10 năm 2012). “What is TypeScript and why with Anders Hejlsberg”. www.hanselminutes.com. Truy cập ngày 15 tháng 1 năm 2014.
  30. ^ S. Somasegar (1 tháng 10 năm 2012). “TypeScript: JavaScript Development at Application Scale”. msdn.com. Truy cập ngày 27 tháng 11 năm 2013.
  31. ^ optional static typing is called gradual typing

Liên kết ngoài[sửa | sửa mã nguồn]