2013-04-20 2 views
7

Я только начал читать основы TypScript и может ли кто-нибудь сказать мне преимущества использования машинописных над JavaScript или jquery? Некоторый пример был бы полезен.Преимущества TypeScript

+3

машинописный текст дает вам сильную типизацию и проверку времени компиляции. javascript этого не делает. jquery - это библиотека и может использоваться с обоими. typescript - это надмножество javascript. – devshorts

ответ

2

Вот коллекция видео на Машинопись:

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

В основном это добавляет дополнительный статический ввод в Javascript, поэтому все преимущества статической типизации привел к JavaScript.

+0

Спасибо Kenneth за ссылку. Я просто просмотрел первое видео. Это было информативно. сделают остаток через некоторое время позже. :) – Bala

3

JQuery и машинописный ввод не являются взаимоисключающими, так как довольно распространено использование JQuery в TypScript. Основным преимуществом использования машинописного текста над Javascript является добавление проверки типов. Это позволяет создавать интерфейсы и разрабатывать по контракту. В более крупных проектах может быть полезно иметь проверку типов, но это субъективное предпочтение.

+0

Спасибо, Шон.До сих пор я использую javascript для проверки на стороне клиента и для включения или отключения элементов управления на странице на основе выбора клиента. большая часть моей бизнес-логики написана на C#. Создание интерфейсов на стороне клиента для меня нова. как будут полезны интерфейсы на стороне клиента? – Bala

+0

Это зависит от вашего варианта использования. Мы разработали пару довольно крупных клиентских приложений в TypScript, поэтому было хорошо иметь проверку типов, имея возможность писать развязанный код через интерфейсы. Опять же, это субъективно. –

+0

В соответствии с моим пониманием создания интерфейсов все классы зависят от структуры вашей базы данных (или таблицы). В вашем случае, вы имеете в виду, что код машинописного текста будет содержать некоторую бизнес-логику? если это возможно для конечного пользователя, чтобы увидеть логику? Также я прочитал, что файл .ts будет скомпилирован в .js-файл. – Bala

11

Я использовал машинопись для нескольких небольших проектов хобби, и я убежден, что это идеальная замена Javascript. Мои любимые особенности:

  • Файлы декларации. С файлами декларации вы можете добавлять информацию о типе в ваши библиотеки javascript. Эта структурная информация даст вам фантастическую поддержку Intellisense в VisualStudio.

  • "Стандарт" ООП. Если вы работаете на фоне C# или Java, вам, вероятно, даже не понадобится учебник по машиностроению. Это просто работает. У вас есть классы, интерфейсы, модификаторы доступа, механизмы расширения, ...

  • Встроенная поддержка модулей. У машинописного текста есть немного запутанная модульная система. Вы можете разделить свой код на несколько файлов .ts и просто добавить их, но вы также можете создавать разные модули.

И, наконец: Синтаксис. Иногда это самые маленькие вещи, которые оказывают наибольшее влияние. Для меня синтаксис машинописных текстов кажется просто идеальным. Позвольте мне дать вам несколько примеров:

Тип аннотаций с «:» и определение типа

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 

массивы, которые работают как списки, стеки, ...

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 

И функции с стрелка синтаксис лямбды:

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

Теперь типизированные массивы и лямбды комбинированные:

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 

Мне очень понравилось использовать машинопись. Это значительно повысит вашу производительность. И еще впереди: http://typescript.codeplex.com/wikipage?title=Roadmap

В выпуске 0.9 будут представлены общие для версии 1.x, и они планируют реализовать вызовы async/wait.

+0

Прохладный. Спасибо за ваше время, отвечая на вопрос. Typcript - это клиентская сторона C#, которая преобразуется в JavaScript. – Bala

Смежные вопросы