2013-04-20 78 views
7

Tôi chỉ mới bắt đầu đọc những điều cơ bản của Typescript và bất cứ ai có thể cho tôi biết những lợi thế của việc sử dụng Typescript trên Javascript hoặc jquery? Một số ví dụ sẽ hữu ích.Ưu điểm của TypeScript

+3

kiểu chữ cung cấp cho bạn khả năng gõ mạnh mẽ và kiểm tra thời gian biên dịch. javascript không. jquery là một thư viện và có thể được sử dụng với cả hai. typescript là một superset của javascript. – devshorts

Trả lời

2

Dưới đây là một bộ sưu tập các video trên nguyên cảo:

http://channel9.msdn.com/search?term=typescript

Về cơ bản nó cho biết thêm gõ tĩnh tùy chọn để Javascript, vì vậy tất cả những ưu điểm của cách gõ tĩnh đưa đến Javascript.

+0

Cảm ơn Kenneth đã liên kết. Tôi vừa xem video đầu tiên. Đó là thông tin. sẽ làm phần còn lại sau đó. :) – Bala

3

JQuery và Typecript không loại trừ lẫn nhau, vì nó là khá phổ biến để sử dụng JQuery trong Typescript. Lợi ích chính của việc sử dụng Typescript trên Javascript là việc bổ sung kiểm tra kiểu. Điều này cho phép bạn tạo các giao diện và phát triển theo hợp đồng. Trong các dự án lớn hơn, có thể có lợi khi kiểm tra kiểu, nhưng đó là một sở thích chủ quan.

+0

Cảm ơn Sean.Cho đến bây giờ tôi sử dụng javascript để xác thực phía khách hàng và để bật hoặc tắt các điều khiển trong trang dựa trên lựa chọn của khách hàng. hầu hết logic nghiệp vụ của tôi được viết bằng C#. Tạo giao diện ở phía máy khách là mới đối với tôi. các giao diện ở phía khách hàng sẽ hữu ích như thế nào? – Bala

+0

Nó phụ thuộc vào trường hợp sử dụng của bạn. Chúng tôi đã phát triển một vài ứng dụng phía máy khách khá lớn trong Typescript, vì vậy nó đã được tốt đẹp để có kiểm tra kiểu, trong khi có thể viết mã tách riêng thông qua giao diện. Một lần nữa, đó là chủ quan. –

+0

Theo hiểu biết của tôi về việc tạo giao diện, tất cả mọi thứ sẽ phụ thuộc vào cấu trúc cơ sở dữ liệu (hoặc bảng) của bạn. Trong trường hợp của bạn, bạn có nghĩa là các mã số bản ghi sẽ chứa một số logic kinh doanh quá? nếu có thì người dùng cuối có thể thấy logic không? Ngoài ra tôi đọc tệp .ts sẽ được biên dịch thành tệp .js. – Bala

11

Tôi đã sử dụng bản đánh số cho một vài dự án sở thích nhỏ và tôi tin chắc rằng đó là sự thay thế Javascript hoàn hảo. Các tính năng yêu thích của tôi là:

  • Tệp khai báo. Với các tập tin khai báo, bạn có thể thêm thông tin kiểu vào thư viện javascript của bạn. Thông tin cấu trúc này sẽ giúp bạn có được sự hỗ trợ tuyệt vời về intellisense trong VisualStudio.

  • "OOP" chuẩn. Nếu bạn đến từ một nền C# hoặc Java, bạn có thể thậm chí sẽ không cần một hướng dẫn đánh máy. Nó chỉ hoạt động. Bạn có các lớp, giao diện, công cụ sửa đổi truy cập, cơ chế tiện ích mở rộng, ...

  • Hỗ trợ cài sẵn cho mô-đun. Typescript có một hệ thống mô-đun hơi khó hiểu. Bạn có thể chia mã của bạn thành nhiều tệp .ts và chỉ nối thêm chúng nhưng bạn cũng có thể tạo các mô-đun khác nhau.

Và cuối cùng: Cú pháp. Đôi khi đó là những điều nhỏ có tác động lớn nhất. Đối với tôi cú pháp của kiểu chữ cảm thấy hoàn hảo. Hãy để tôi cung cấp cho bạn một vài ví dụ:

Loại chú thích với ":" và suy luận kiểu

var a = 5; //infers that a has the type number 
var canvas : HTMLCanvasElement = document.getElementById("canvas"); 
// automatically casts to the canvas type. Intellisense will now suggest all the canvas specific methods 

Mảng mà làm việc như danh sách, ngăn xếp, ...

var array= []; //dynamic type 
array.push(1); 
array[1]=2; 
array.pop(); 

var array2 : number[] = []; //typed array 
array[0]=2; 
array[1]="hello" //compile time error. You've got to love the type system. Finally you can trust your collections 

Và chức năng với cú pháp mũi tên dưới dạng lambdas:

var array=[]; 
array.push(1); 
//... 
array.forEach((num)->{alert(num);}); 
//for single statement functions you can write 
array.forEach((num)->alert(num)); 

Bây giờ các mảng được nhập và lambdas kết hợp:

var array: number[]=[]; 
array.push(1); 
//... 

//let's assume you want to work with the data in the array. You've got to filter it and process it. Lambdas will come in handy, as well as the type inference 
array.filter((num)->num>3).map((num)->num*2).forEach((num)->alert(num)); 

// the first lambda with the comparison is fully type safe. The compiler knows the type of the array. Therefore it can infer the type of the parameter num and will check if num can be compared to a number 

Tôi thực sự rất thích sử dụng bản ghi. Nó sẽ làm tăng đáng kể năng suất của bạn. Và thậm chí còn có nhiều thứ khác nữa: http://typescript.codeplex.com/wikipage?title=Roadmap

Bản phát hành 0.9 sẽ có tính năng generics và cho các phiên bản 1.x mà họ có kế hoạch triển khai cuộc gọi không đồng bộ/đang chờ.

+0

Tuyệt. Cảm ơn bạn đã dành thời gian trả lời câu hỏi. Typescript là client Side C# được chuyển thành JavaScript. – Bala

Các vấn đề liên quan