TypeScript – альтернатива JavaScript от Microsoft

Компанией Microsoft был анонсирован новый язык программирования. Проект под названием TypeScript позиционируется в качестве инструмента для разработки web-приложений, а его функционал предполагает расширение возможностей JavaScript. Разработкой TypeScript занят Андерс Хейлсберг (Anders Hejlsberg), знаменитый создатель Delphi, Turbo Pascal и C#. За распространение кода экспериментального компилятора, выполняющего трансляцию TypeScript в код JavaScript, отвечает лицензия Apache, тогда как разработка языка осуществляется через сервис CodePlex в рамках публичного репозитория. Спецификации языка являются открытыми и публикуются в рамках OWFa. Кроме того, работает и специальная дискуссионная площадка, в которой принимаются пожелания и предложения относительно развития языка от заинтересованных представителей сообщества.

Основным отличием TypeScript от подобных проектов (того же Google Dart) является то, что он не позиционируется как кардинальная переработка JavaScript, а лишь позволяет расширить его возможности. При этом, за счет обратной совместимости TypeScript затраты на соответствующую адаптацию текущих приложений окажутся сведены к минимуму. Отличия нового языка от JavaScript заключаются в возможности явного определения типов, поддержке использования полноценных классов (по аналогии с традиционными объектно-ориентированными языками), а также поддержке подключения модулей. Кроме того, использование статической типизации позволит избежать ряда ошибок в ходе разработки, откроет возможность задействования дополнительных техник оптимизации, будет способствовать упрощению отладки, а также упростит код, тем самым повышая его читаемость для поддержки и доработок силами сторонних разработчиков.

Адаптацию существующих web-приложений предполагается осуществлять поэтапно, по мере постепенного определения тех или иных типов. При этом сохранится поддержка динамической типизации, поскольку компилятор TypeScript способен обрабатывать и немодифицированный JavaScript. Главный принцип нового языка – это полная совместимость всего существующего кода на JavaScript. Использование стандартных JavaScript-библиотек и ранее созданных наработок дополняется возможностью сохранения существующих JavaScript-проектов в первозданном виде при размещении данных о типизации в виде аннотаций, помещенных в отдельные файлы. Подобный подход не мешает разработке и допускает прямое использование проекта.

Код итогового приложения на TypeScript может быть компилирован в обычный JavaScript. Редактирование кода TypeScript осуществляется в штатных редакторах: так, для Vim и Emacs уже подготовлены файлы для восприятия его расширенного синтаксиса, тогда как для ряда популярных JavaScript-библиотек (в т.ч. и jQuery) аналогично подготовлены файлы, содержащие декларации его статических типах.