TypeScript
![]() | |
Mẫu hình | Multi-paradigm: functional, generic, imperative, object-oriented |
---|---|
Thiết kế bởi | Microsoft |
Nhà phát triển | Microsoft |
Xuất hiện lần đầu | 1 tháng 10 năm 2012[1] |
Phiên bản ổn định | |
Kiểm tra kiểu | Duck, gradual, structural[3] |
Giấy phép | Apache License 2.0 |
Phần mở rộng tên tập tin | .ts,.tsx |
Trang mạng | www |
Ảnh hưởng từ | |
C#, Java, JavaScript, ActionScript[4] | |
Ả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 siêu tập hợp 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à biên dịch sang JavaScript.[5] Vì TypeScript là một siêu tập hợp của JavaScript, các chương trình JavaScript hiện có cũng là các chương trình TypeScript hợp lệ về mặt cú pháp, tuy nhiên, chúng có thể bị lỗi type-check.
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 biên dịch TypeScript mặc định,[6] 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, MongoDB và D3.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.[7]
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.[8] Một phần mở rộng chính thức cho phép Visual Studio 2012 cũng hỗ trợ TypeScript.[9] Anders Hejlsberg, kiến trúc sư chính của C # và người tạo ra Delphi và Turbo Pascal, đã tham gia vào quá trình phát triển TypeScript.[10][11][12][13]
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.[14][15] 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 đó.[16][17] 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.[18][19] Các trình soạn thảo văn bản khác nhau, bao gồm Emacs, Vim, Webstorm, Atom [20] và Visual Studio Code của riêng Microsoft cũng hỗ trợ TypeScript.[21]
TypeScript 0.9, được phát hành vào năm 2013, đã thêm hỗ trợ cho generic.[22]
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.[23] Visual Studio 2013 Update 2 cung cấp hỗ trợ tích hợp cho TypeScript.[24] 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.[25]
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
,[26] đô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,[27] mang đến nhiều bổ sung ngôn ngữ như tuple (bộ giá trị) trong rest parameter (tham số phần còn lại) và spread expression (biểu thức trải rộng), rest parameter với các kiểu tuple, generic rest parameter, v.v.[28]
TypeScript 4.0 được phát hành vào ngày 20 tháng 8 năm 2020.[29] 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à các kiểu Variadic Tuple (bộ giá trị đa dạng).[29]
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.[30] 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.[31]
Các nhà phát triển TypeScript đã tìm kiếm một giải pháp không phá vỡ tính tương thích với tiêu chuẩn và khả năng 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ợ cho lập trình dựa trên lớp trong tương lai, TypeScript đã được xây dựng dựa trên đề xuất đó. Điều này 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 siêu tập hợp dựa trên đề xuất ECMAScript, chuyển đổi các phần mở rộng đó thành JavaScript thông thường. Theo nghĩa này, tính năng lớp của 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 kiểu tĩnh[32] tùy chọn, 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 (arrow function syntax) 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]- ^ “TypeScript”. CodePlex. Bản gốc lưu trữ ngày 3 tháng 4 năm 2015. Truy cập ngày 26 tháng 4 năm 2015.
- ^ a b “TypeScript releases” (bằng tiếng Anh).
- ^ “Type Compatibility”. TypeScript. Truy cập ngày 21 tháng 3 năm 2018.
- ^ Nelson, Gary (28 tháng 4 năm 2020). “How ActionScript foreshadowed TypeScript”. Medium (bằng tiếng Anh). Truy cập ngày 9 tháng 7 năm 2022.
- ^ Bright, Peter (ngày 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.
- ^ “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.
- ^ “borisyankov/DefinitelyTyped”. GitHub. Truy cập ngày 26 tháng 4 năm 2015.
- ^ TypeScript Homepage, "Visual Studio includes TypeScript in the box, starting with Visual Studio 2013 Update 2"
- ^ TypeScript 1.0 Tools for Visual Studio 2012
- ^ Foley, Mary Jo (ngày 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.
- ^ Somasegar, S. (ngày 1 tháng 10 năm 2012). “Somasegar's blog”. Microsoft. Bản gốc lưu trữ ngày 22 tháng 4 năm 2015. Truy cập ngày 26 tháng 4 năm 2015.
- ^ Baxter-Reynolds, Matt (ngày 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.
- ^ Jackson, Joab (ngày 1 tháng 10 năm 2012). “Microsoft Augments Javascript for Large-scale Development”. CIO. IDG Enterprise. Bản gốc lưu trữ ngày 17 tháng 12 năm 2013. Truy cập ngày 26 tháng 4 năm 2015.
- ^ “Microsoft augments JavaScript for large-scale development”. InfoWorld. IDG. ngày 1 tháng 10 năm 2012. Truy cập ngày 26 tháng 4 năm 2015.
- ^ Turner, Jonathan (ngày 2 tháng 4 năm 2014). “Announcing TypeScript 1.0”. TypeScript Language team blog. Microsoft. Bản gốc lưu trữ ngày 2 tháng 5 năm 2015. Truy cập ngày 26 tháng 4 năm 2015.
- ^ Miguel de Icaza (ngày 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
- ^ “Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?”. ZDNet. ngày 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..
- ^ “TypeScript-Unterstützung für Eclipse”. heise Developer. ngày 6 tháng 8 năm 2013. Truy cập ngày 26 tháng 4 năm 2015.
- ^ “TypeScript”. Eclipse Marketplace. Eclipse Foundation. Bản gốc lưu trữ ngày 10 tháng 10 năm 2018. Truy cập ngày 26 tháng 4 năm 2015.
- ^ “TypeStrong: The only TypeScript package you will ever need”. Truy cập ngày 21 tháng 7 năm 2016.
- ^ Hillar, Gastón (ngày 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.
- ^ “TypeScript 0.9 arrives with new compiler, support for generics”. The Register. ngày 18 tháng 6 năm 2013. Truy cập ngày 26 tháng 4 năm 2015.
- ^ Hejlsberg, Anders (ngày 2 tháng 4 năm 2014). “TypeScript”. Channel 9. Microsoft. Truy cập ngày 26 tháng 4 năm 2015.
- ^ Jackson, Joab (ngày 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.
- ^ Turner, Jonathan (ngày 21 tháng 7 năm 2014). “New Compiler and Moving to GitHub”. TypeScript Language team blog. Microsoft. Bản gốc lưu trữ ngày 27 tháng 10 năm 2015. Truy cập ngày 26 tháng 4 năm 2015.
- ^ Bright, Peter (ngày 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.
- ^ “Announcing TypeScript 3.0”. ngày 30 tháng 7 năm 2018. Truy cập ngày 16 tháng 3 năm 2020.
- ^ “TypeScript 3.0”. ngày 30 tháng 7 năm 2018. Truy cập ngày 16 tháng 3 năm 2020.
- ^ a b “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.
- ^ Anders Hejlsberg (ngày 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.
- ^ S. Somasegar (ngày 1 tháng 10 năm 2012). “TypeScript: JavaScript Development at Application Scale”. msdn.com. Bản gốc lưu trữ ngày 22 tháng 4 năm 2015. Truy cập ngày 27 tháng 11 năm 2013.
- ^ static typing, hay còn gọi là gradual typing