TypeScript: відмінності між версіями
[перевірена версія] | [перевірена версія] |
Yuriz (обговорення | внесок) Вступ задовгий |
Yuriz (обговорення | внесок) |
||
Рядок 42: | Рядок 42: | ||
* підтримка використання повноцінних [[Клас (програмування)|класів]] (як в традиційних об'єктно-орієнтованих мовах), |
* підтримка використання повноцінних [[Клас (програмування)|класів]] (як в традиційних об'єктно-орієнтованих мовах), |
||
* підтримка підключення модулів. |
* підтримка підключення модулів. |
||
За задумом ці нововведення мають підвищити швидкість розробки, [[прочитність]], рефакторинг і повторне використання коду, здійснювати пошук помилок на етапі розробки та компіляції, а також швидкодію програм. |
За задумом ці нововведення мають підвищити швидкість розробки, [[прочитність]], рефакторинг і повторне використання коду, здійснювати пошук помилок на етапі розробки та компіляції, а також швидкодію програм.{{джерело}} |
||
Планується, що в силу повної зворотної сумісності адаптація |
Планується, що в силу повної зворотної сумісності адаптація наявних застосунків на нову мову програмування може відбуватися поетапно, шляхом поступового визначення типів. Підтримка [[динамічна типізація|динамічної типізації]] зберігається — компілятор TypeScript успішно обробить і не модифікований код на JavaScript. |
||
Основний принцип мови — будь-який код на JavaScript сумісний з TypeScript, тобто в програмах на TypeScript можна використовувати стандартні JavaScript-бібліотеки і раніше створені напрацювання. Більш того, можна залишити наявні JavaScript-проекти в незмінному вигляді, а дані про типізації розмістити у вигляді анотацій, які можна помістити в окремі файли, які не заважатимуть розробці і прямому використанню проекту (наприклад, подібний підхід зручний при розробці JavaScript-бібліотек). |
|||
На момент релізу представлені файли для сприйняття розширеного синтаксису TypeScript для [[Vim]] і [[Emacs]], а також [[плагін]] для [[Microsoft Visual Studio]]. |
На момент релізу представлені файли для сприйняття розширеного синтаксису TypeScript для [[Vim]] і [[Emacs]], а також [[плагін]] для [[Microsoft Visual Studio]]. |
Версія за 12:09, 6 жовтня 2020
TypeScript | |
---|---|
Парадигма | функційне програмування, узагальнене програмування, імперативне програмування, об'єктно-орієнтоване програмування і подійно-орієнтоване програмування |
Дата появи | 1 жовтня 2012 |
Творці | Microsoft |
Розробник | Microsoft |
Останній реліз | 3.8.2 (23 лютого, 2020[1]) |
Тестова версія | 3.7 beta[2] (2 жовтня, 2019 ) |
Система типізації | качина типізація, gradual typingd і structural typingd |
Під впливом від | JavaScript, C# |
Вплинула на | AtScript, AssemblyScript |
Мова реалізації | JavaScript[https://www.openhub.net/p/typescript/analyses/latest/languages_summary_The_typescript_Open_Source_Project_on_Open_Hub:_Languages_Page] |
Ліцензія | Apache License |
Звичайні розширення файлів | .ts, .tsx |
Репозиторій вихідного коду | github.com/Microsoft/TypeScript |
Вебсайт | www.typescriptlang.org |
TypeScript — мова програмування, представлена Microsoft восени 2012; позиціонується як засіб розробки веб-застосунків, що розширює можливості JavaScript[4][5][6][7][7][8][9].
Розробником мови TypeScript є Андерс Гейлсберг (англ. Anders Hejlsberg), який створив раніше C#, Turbo Pascal і Delphi.
Код експериментального компілятора, котрий транслює код TypeScript в представлення JavaScript, поширюється під ліцензією Apache, розробка ведеться в публічному репозиторії через сервіс CodePlex. Специфікації мови відкриті і опубліковані в рамках угоди Open Web Foundation Specification Agreement (OWFa 1.0)[10].
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
(числовий, булевий і рядковий, відповідно). Структури даних належать до типу any
.
Виноски
- ↑ Release . Microsoft/TypeScript. TypeScript.
- ↑ TypeScript is a superset of JavaScript that compiles to clean JavaScript output.: microsoft/TypeScript, Microsoft, 2 жовтня 2019, процитовано 2 жовтня 2019
- [https://www.openhub.net/p/typescript/analyses/latest/languages_summary_The_typescript_Open_Source_Project_on_Open_Hub:_Languages_Page]
_—_2006. [[d:Track:Q124688]]
Посилання
- typescriptlang.org
- TypeScript project at Codeplex
- TypeScript Language Specification[недоступне посилання з червня 2019]
|