Chúng tôi đã có JavaScript, sau đó chúng tôi có Flash, sau đó chúng tôi có Silverlight và sau đó HTML5 nợ tất cả.
Vậy động lực đằng sau TypeScript là gì? Những vấn đề nào sẽ được giải quyết và chúng ta sẽ có những cải tiến gì với TypeScript?
Chúng tôi đã có JavaScript, sau đó chúng tôi có Flash, sau đó chúng tôi có Silverlight và sau đó HTML5 nợ tất cả.
Vậy động lực đằng sau TypeScript là gì? Những vấn đề nào sẽ được giải quyết và chúng ta sẽ có những cải tiến gì với TypeScript?
Câu trả lời:
Có vẻ như đó là một ngôn ngữ dựa trên lớp, được gõ tĩnh, được biên dịch thành JavaScript. Đó là một ý tưởng tốt, và một ý tưởng mà những người khác cũng đã có.
Những lợi thế nên rõ ràng đối với bất kỳ ai phát triển cả ngôn ngữ dựa trên lớp, được gõ tĩnh và bằng JavaScript:
Vì vậy, như chúng ta thấy, ý tưởng cơ bản là một ý tưởng rất tốt. Có nói rằng, tôi không thể nói bất cứ điều gì về ngôn ngữ bởi vì tôi không có kinh nghiệm với nó. Nhưng tôi đã sử dụng Smart (được liên kết ở trên) và thấy nó là một công cụ cực kỳ mạnh mẽ và hữu ích để phát triển web.
Có một vài lý do tốt để sử dụng TypeScript, theo như tôi có thể thấy. Đầu tiên và quan trọng nhất, như Mason Wheeler đã nói, một trình biên dịch . Hay đúng hơn là tất cả việc kiểm tra một trình biên dịch nào. JSLint và các công cụ khác là hữu ích, nhưng bỏ lỡ một số vấn đề và đôi khi hoàn toàn sai. Tôi chắc chắn hoan nghênh "sự đổi mới" này.
Sau đó, có một hệ thống loại thực , cải thiện khả năng đọc và thực thi các loại chính xác. Rốt cuộc, điều này làm tăng tốc độ phát triển.
Đối với tôi, một trong những điều tuyệt vời là công cụ hỗ trợ . Đó có lẽ là một tác dụng phụ của hệ thống loại, nhưng vẫn tuyệt vời. Và thực sự cần thiết, vì hỗ trợ công cụ JavaScript hiện tại vượt quá hữu ích.
TypeScript cố gắng mở rộng JavaScript . Trình biên dịch tạo JavaScript thực sự tốt đẹp. Và ngoài ra, nó tuân theo các đề xuất ECMAScript 6 . (Ví dụ cú pháp hàm mũi tên , giá trị mặc định tham số , mô-đun , v.v.
Nó làm cho việc làm việc với các mô-đun và các lớp dễ dàng hơn. Nó thực sự có thể và khá phổ biến để làm việc với các lớp và mô-đun trong JavaScript, nhưng nó đòi hỏi một số lượng mã soạn sẵn. Và nó không thực sự dễ đọc. TypeScript cho phép viết các câu lệnh class-, interface- và module giống như trong Java hoặc C #, điều này dễ dàng hơn nhiều nếu bạn hỏi tôi.
Nhưng sau tất cả, nó vẫn chỉ là JavaScript . Không cần phải học một ngôn ngữ hoặc cú pháp mới. Điều duy nhất nó thêm vào, là hệ thống loại tùy chọn (rất tuyệt vời và quá hạn).
Sau đó, có "thư viện định nghĩa" , có nghĩa là tôi có thể sử dụng tất cả các lib JavaScript của mình mà không cần viết lại hoặc thậm chí vá chúng. Tuy nhiên, tôi có hệ thống loại bổ sung bây giờ.
Tôi chắc chắn sẽ thử một lần!
Một điều cuối cùng, không có sự cạnh tranh giữa HTML5 và TypeScript. Nhưng nó là một câu chuyện khác.
Chúng tôi đã có JavaScript, sau đó chúng tôi có Flash, sau đó chúng tôi có Silverlight và sau đó HTML5 nợ tất cả.
Điều này chỉ đơn giản là KHÔNG đúng . Html5 không sở hữu chúng, nó giới thiệu các đánh dấu mới giúp đơn giản hóa việc sử dụng đa phương tiện và khám phá các lợi thế của các trình duyệt thời đại mới (như sử dụng tăng tốc phần cứng trong khi hiển thị html).
Vậy động lực đằng sau TypeScript là gì?
Động lực có thể được thúc đẩy bởi lý do để sử dụng nó. Tất cả các tính năng của TypeScript như: kiểm tra tĩnh, điều hướng dựa trên biểu tượng, hoàn thành câu lệnh và tái cấu trúc mã là những lý do rất mạnh để xem xét nó.
Ngoài ra, nó cung cấp các lớp, mô-đun và giao diện để giúp bạn xây dựng các thành phần mạnh mẽ. Các tính năng này có sẵn tại thời điểm phát triển để phát triển ứng dụng có độ tin cậy cao, nhưng được biên dịch thành JavaScript đơn giản.
Nó có thể được coi là một công cụ để quản lý phát triển javascript chứ không phải là một ngôn ngữ hoàn toàn mới biên dịch thành JS. Nó không muốn trở thành ngôn ngữ phát triển phía máy chủ như Dart và không có cú pháp khác như CoffeeScript. Nó không muốn lấy một ngôn ngữ phổ biến (và đó là thư viện cốt lõi) và biên dịch nó thành JS như GWT hoặc script #. TypeScript thậm chí tuân theo cú pháp "lớp" tương tự được đề xuất cho phiên bản tiếp theo của JS.
Tôi nghĩ rằng hầu hết việc phát triển web được thực hiện ngày nay chỉ sử dụng javascript thực, chỉ ở phía máy khách. Các ngôn ngữ hoặc khung như Dart, GWT không phù hợp cho việc này. Nếu bạn đi tìm coffeescript, một cú pháp mới sẽ xuất hiện. Và bạn phải hiểu cả coffeescript và JS. Mặc dù TypeScript chỉ bổ sung thêm một số tính năng định hướng loại bổ sung, được kết hợp vào JS, giúp lưu các nhà phát triển khỏi các lỗi cụ thể về loại (phần lớn là lỗi của JS) và cung cấp cho các công cụ phát triển nhiều thông tin hơn về ý định của nhà phát triển.
Cách tiếp cận này không mới. Chuyển đến phần "Nhập tĩnh" của
Bài viết này giải quyết truy vấn của bạn- http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/
Tôi nghĩ rằng đó là một nỗ lực để biến một mẩu tin tào lao (javascript) được chia sẻ, không đáng tin cậy thành một ngôn ngữ độc quyền thực sự có thể được sử dụng cho các dự án quan trọng.
Nó nên được so sánh với GWT, có một bộ mục tiêu tương tự nhưng đã có một cách tiếp cận sạch hơn bằng cách làm cho javascript không phải là một phần của ngôn ngữ; và với các applet Java hoặc Flash, sử dụng cách tiếp cận rất rõ ràng để xác định một môi trường thời gian chạy hoàn chỉnh độc lập với trình duyệt.
Ý kiến của bạn có thể khác nhau, nhưng tôi nghĩ rằng nó sẽ bị tiêu diệt miễn là nó phụ thuộc vào các trình duyệt vốn cung cấp các triển khai javascript (khác nhau, không nhất quán) và các mô hình DOM.