Если вы не прятались под кустом всю неделю, вы, несомненно, сталкивались с TypeScript ; Новый язык Microsoft для разработки приложений на уровне JavaScript . Вокруг много неверной информации, поэтому я решил присоединиться…
Во-первых, TypeScript не является заменой JavaScript. TypeScript для JavaScript, как C ++ для C. Это расширение языка, а не новый синтаксис сам по себе.
TypeScript компилируется ( «предварительно обработанный» или «транскомпилированный» было бы более подходящим описанием) в собственный код JavaScript. Это похоже на CoffeeScript, за исключением того, что TypeScript намного ближе к существующему синтаксису JavaScript; JavaScript ++, если хотите.
Особенности TypeScript
TypeScript предлагает статическую типизацию; Вы можете определить тип данных переменных. Синтаксис немного необычен для языков, основанных на C, в том смысле, что тип указан после переменной, например
function Hello(name: string) {
return "Hello " + name;
}
Многие разработчики будут рады найти объявления классов и наследование, например,
// base class
class Language {
private hasClasses: boolean;
constructor(hasClasses: boolean) {
this.hasClasses = hasClasses;
}
ClassSupported() {
return (this.hasClasses ? "yes" : "no");
}
}
// JavaScript language
class JavaScript extends Language {
constructor(){
super(false);
}
}
// TypeScript language
class TypeScript extends Language {
constructor(){
super(true);
}
}
var js = new JavaScript();
alert(js.ClassSupported()); // no
var ts = new TypeScript();
alert(ts.ClassSupported()); // yes
У нас также есть интерфейсы:
interface Website {
name: string;
url: string;
}
function ShowSite(site Website) {
return site.name + " at http://" + site.url + "/";
}
alert(ShowSite({ name: "SitePoint", url: "www.sitepoint.com" }));
Интересно, что объект не должен явно указывать, что он реализует интерфейс; это только должно соответствовать ожидаемому определению.
Наконец, TypeScript реализует модули, например
module Say {
export function Hello(text: string) {
return "Hello " + text + "!";
}
}
alert(Say.Hello("world"));
Весь код переводится прямо в JavaScript, например
var Say;
(function (Say) {
function Hello(text) {
return "Hello " + text + "!";
}
Say.Hello = Hello;
})(Say || (Say = {}));
alert(Say.Hello("world"));
Microsoft предоставила отличную онлайн-площадку, чтобы помочь вам оценить синтаксис: www.typescriptlang.org/Playground/
Мне нравится TypeScript, потому что …
Давайте посмотрим на хорошие вещи.
Разработчики, плохо знакомые с JavaScript, часто борются с концепцией наследования прототипов. Это другой подход к классическим концепциям наследования, используемым в таких языках, как C # и Java. TypeScript предлагает обнадеживающий комфорт.
Очевидно, что TypeScript использует предложенный синтаксис класса ECMAScript Harmony. Когда это станет широко доступным (не затаив дыхание), компилятору TypeScript не нужно будет преобразовывать классы, и ваш код все равно будет работать.
Статическая типизация обеспечивает лучшие возможности IDE, такие как автозаполнение, рефакторинг и отладка. Плагин был выпущен для Visual Studio, Sublime Text, Vim и Emacs, и в дальнейшем будет доступно больше. Другими словами, должно быть проще разрабатывать сложные приложения JavaScript.
TypeScript можно использовать на клиенте или сервере в Node.js. Это расширенный набор JavaScript и компилируется в сырой, не запутанный код. В отличие от языка Google Dart , TypeScript не пытается полностью заменить JavaScript, не требует, чтобы другие поставщики браузеров добавляли функции, или требует объемных библиотек времени выполнения при его транскомпиляции. У него гораздо больше шансов на успех.
Язык был разработан Андерсом Хейлсбергом, который принес нам превосходный C #. TypeScript имеет открытый исходный код и предоставляется по лицензии Apache 2.0 по адресу typescript.codeplex.com .
Наконец, компилятор TypeScript написан на TypeScript. Это невероятно круто.
Но…
Я подозреваю, что TypeScript будет принят разработчиками, использующими Microsoft .NET и Visual Studio. Хотя это, несомненно, полезно для других, есть сектора сообщества веб-разработчиков, которые не мечтают прикоснуться к продукту Microsoft. Решайтесь сами — всегда будет «Microsoft! ARGH !! Нееееет !!! » комментарии.
Microsoft создала TypeScript, потому что JavaScript остается самым неправильно понятым языком программирования из когда-либо созданных. В последние годы мнение улучшилось, но вы все равно увидите комментарии о том, что JavaScript является ошибкой и не должен использоваться «правильными» разработчиками. Лишь немногие приводят аргументированные аргументы, кроме собственного снобизма или неправильного понимания языка.
Я люблю JavaScript. Это гибкий, мощный и предлагает функции, которые принимаются на других языках. Я могу понять причину, лежащую в основе TypeScript, и думаю, что он реализован хорошо, но я вряд ли буду использовать его, когда буду более чем рад писать собственный код JavaScript, который более эффективен (или должен быть) .
Но если вы не любитель JavaScript, как я, TypeScript предлагает убедительную альтернативу.
Для получения дополнительной информации о TypeScript, зайдите на typescriptlang.org .
И, прежде чем вы спросите, Microsoft не спонсировала эту статью и не просила меня написать ее.