TypeScript — мова програмування, представлена Microsoft восени 2012; позиціонується як засіб розробки вебзастосунків, що розширює можливості JavaScript.

Розробником мови TypeScript є Андерс Гейлсберг (), який створив раніше C#, Turbo Pascal і Delphi.

Код експериментального компілятора, котрий транслює код TypeScript у представлення JavaScript, поширюється під ліцензією Apache, розробка ведеться в публічному репозиторії через сервіс CodePlex. Специфікації мови відкриті і опубліковані в межах угоди Open Web Foundation Specification Agreement (OWFa 1.0).

TypeScript є зворотньо сумісним із JavaScript. Фактично, після компіляції програму на TypeScript можна виконувати в будь-якому сучасному браузері або використовувати спільно із серверною платформою Node.js.

Нововведення

Переваги над JavaScript: можливість явного визначення типів (статична типізація), підтримка використання повноцінних класів (як у традиційних об'єктно-орієнтованих мовах), підтримка підключення модулів. За задумом ці нововведення мають підвищити швидкість розробки, прочитність, рефакторинг і повторне використання коду, здійснювати пошук помилок на етапі розробки та компіляції, а також швидкодію програм.

Планується, що в силу повної зворотної сумісності адаптація наявних застосунків на нову мову програмування може відбуватися поетапно, через поступове визначення типів. Підтримка динамічної типізації зберігається — компілятор TypeScript успішно обробить і не модифікований код на JavaScript.

Основний принцип мови — будь-який код на JavaScript сумісний з TypeScript, тобто в програмах на TypeScript можна використовувати стандартні JavaScript-бібліотеки і раніше створені напрацювання. Ба більше, можна залишити наявні JavaScript-проєкти в незмінному вигляді, а дані про типізації розмістити у вигляді анотацій, які можна помістити в окремі файли, які не заважатимуть розробці і прямому використанню проєкту (наприклад, подібний підхід зручний при розробці JavaScript-бібліотек).

На момент релізу представлені файли для сприйняття розширеного синтаксису TypeScript для Vim і Emacs, а також плагін для Microsoft Visual Studio.

Одночасно з виходом специфікації розробники підготували файли з деклараціями статичних типів для деяких популярних JavaScript-бібліотек, серед яких jQuery.

Особливості мови

Визначення типів Приклад статичної типізації TypeScript під час визначення функції: function add(left: number, right: number): number { return left + right; }

Примітивні типи, що можуть використовуватися при анотації — це number, boolean і string (числовий, булевий і рядковий, відповідно).

Виноски

Посилання typescriptlang.org TypeScript project at Codeplex TypeScript Language Specification