Перайсці да зместу

TypeScript

З Вікіпедыі, свабоднай энцыклапедыі
TypeScript
Выява лагатыпа
Клас мовы мультыпарадыгменная: функцыянальная, абагульненая, імператыўная, аб’ектна-арыентаваная
З’явілася ў 1 кастрычніка 2012
Аўтар(ы) Microsoft
Пашырэнне файлаў ts, tsx
Тыпізацыя даных качыная, паслядоўная, структурная[1]
Зведала ўплыў JavaScript, C#, Java і CoffeeScript[d]
Паўплывала на AtScript, AssemblyScript
Ліцэнзія Apache Software License 2.0[d][2]
Сайт typescriptlang.org (англ.)

TypeScript — гэта свабодная мова праграмавання высокага ўзроўню з адкрытым зыходным кодам. Яна распрацавана Microsoft. TypeScript дадае ў JavaScript статычную тыпізацыю з дадатковымі анатацыямі тыпаў. Яна прызначана для распрацоўкі вялікіх праграм і транспілюе зыходны код ў JavaScript[3]. Паколькі TypeScript з’яўляецца падмноствам JavaScript, усе праграмы на JavaScript сінтаксічна карэктныя для TypeScript, аднак у мэтах бяспекі яны могуць не праходзіць праверку тыпаў.

TypeScript можа выкарыстоўвацца для распрацоўкі JavaScript-праграм як для выканання на баку кліента, так і на баку сервера (як у Node.js ці Deno). Для транспіляцыі даступна некалькі варыянтаў. Можна выкарыстоўваць стандартны кампілятар TypeScript[4], або можна выклікаць кампілятар Babel.

TypeScript падтрымлівае файлы азначэнняў, якія могуць утрымліваць інфармацыю аб тыпах існых бібліятэк JavaScript, падобна таму як загалоўкавыя файлы C++ могуць апісваць структуру існых аб’ектных файлаў. Гэта дазваляе іншым праграмам выкарыстоўваць значэнні, апісаныя ў гэтых файлах так, як калі б яны былі статычна тыпізаванымі сутнасцямі TypeScript. Існуюць іншыя загалоўкавыя файлы для такіх папулярных бібліятэк, як jQuery, MongoDB і D3.js. Таксама даступныя загалоўкі TypeScript для модуляў бібліятэк Node.js, што дазваляе распрацоўваць праграмы на Node.js у рамках TypeScript[5].

Кампілятар TypeScript сам напісаны на мове TypeScript і скампіляваны ў JavaScript. Ён ліцэнзуецца ў адпаведнасці з ліцэнзіяй Apache 2.0. Андэрс Хэйлсберг, вядучы архітэктар C# і стваральнік Delphi і Turbo Pascal, удзельнічаў у распрацоўцы TypeScript[6][7][8][9].

TypeScript — гэта пашырэнне мовы, якое дадае магчымасці ў стандарт ECMAScript 6. Дадатковыя магчымасці ўключаюць:

  • Анатацыі тыпу і праверка тыпу падчас кампіляцыі
  • Вывад тыпу
  • Сціранне тыпу
  • Інтэрфейсы
  • Пералічальныя тыпы
  • Джэнерыкі
  • Прастор імёнаў
  • Картэжы
  • Async/await

Наступныя функцыі перанесены з ECMAScript 2015:

  • Класы
  • Модулі[10]
  • Скарочаны сінтаксіс «стрэлкі» для ананімных функцый
  • Неабавязковыя параметры і параметры па змаўчанні

Сінтаксічна TypeScript вельмі падобны на JScript.NET, іншай рэалізацыі Microsoft стандарту ECMA-262, якая дадала падтрымку статычнага тыпу і класічных функцый аб’ектна-арыентаванай мовы, такіх як класы, спадчыннасць, інтэрфейсы і прастор імёнаў.

Сумяшчальнасць з JavaScript

[правіць | правіць зыходнік]

TypeScript з’яўляецца строгім супермноствам ECMAScript 2015, які сам з’яўляецца супермноствам ECMAScript 5, звычайна званага JavaScript[11]. Такім чынам, праграма на JavaScript таксама з’яўляецца карэктнай праграмай на TypeScript, а праграма на TypeScript можа без праблем выкарыстоўваць JavaScript. Па змаўчанні кампілятар арыентаваны на ECMAScript 5, які зараз з’яўляецца пераважным стандартам, але таксама здольны генераваць канструкцыі, якія выкарыстоўваюцца ў ECMAScript 3 ці 2015.

З дапамогай TypeScript можна выкарыстоўваць існуючы код JavaScript, уключаць у яго папулярныя бібліятэкі JavaScript і выклікаць код, згенераваны на TypeScript, з іншых бібліятэк JavaScript[12]. Дэкларацыі тыпаў для гэтых бібліятэк прадастаўляюцца разам з зыходным кодам.

Анатацыі тыпаў

[правіць | правіць зыходнік]

TypeScript забяспечвае статычную тыпізацыю з дапамогай анатацый тыпаў, што дазваляе выконваць праверку тыпаў падчас кампіляцыі. Гэта неабавязкова і можа быць праігнаравана для выкарыстання звычайнай дынамічнай тыпізацыі JavaScript.

function add(left: number, right: number): number {
	return left + right;
}

TypeScript падтрымлівае класы ECMAScript 2015, у якіх рэалізавана падтрымка дадатковых анатацый тыпаў.

class Person {
  private name: string;
  private age: number;
  private salary: number;

  constructor(name: string, age: number, salary: number) {
    this.name = name;
    this.age = age;
    this.salary = salary;
  }

  toString(): string {
    return `${this.name} (${this.age}) (${this.salary})`; // As of version 1.4
  }
}

TypeScript падтрымлівае абагульненае праграмаванне[13]. Ніжэй прыведзены прыклад выкарыстання функцыі Identity[14].

function id<T>(x: T): T {
  return x;
}

Зноскі

  1. Type Compatibility (англ.). TypeScript. Праверана 9 кастрычніка 2023.
  2. The typescript Open Source Project on Open Hub: Licenses Page — 2006. Праверана 18 ліпеня 2018.
  3. Bright. Microsoft TypeScript: the JavaScript we need, or a solution looking for a problem?. Ars Technica. Condé Nast (3 кастрычніка 2012). Праверана 26 April 2015.
  4. TypeScript Programming with Visual Studio Code (англ.). code.visualstudio.com. Праверана 12 February 2019.
  5. borisyankov/DefinitelyTyped. GitHub. Праверана 26 April 2015.
  6. Foley. Microsoft takes the wraps off TypeScript, a superset of JavaScript. ZDNet. CBS Interactive (1 кастрычніка 2012). Праверана 26 April 2015.
  7. Somasegar. Somasegar's blog. Microsoft (1 кастрычніка 2012). Праверана 26 April 2015.
  8. Baxter-Reynolds. Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?. ZDNet (1 кастрычніка 2012). Праверана 26 April 2015.
  9. Jackson. Microsoft Augments Javascript for Large-scale Development(недаступная спасылка). CIO. IDG Enterprise (1 кастрычніка 2012). Архівавана з першакрыніцы 17 December 2013. Праверана 26 April 2015.
  10. Klint Finley. Microsoft Previews New JavaScript-Like Programming Language TypeScript. TechCrunch (1 кастрычніка 2012). Праверана 27 November 2013.
  11. Angular 2. angular.io. Праверана 4 May 2016.
  12. Welcome to TypeScript. typescriptlang.org. Microsoft. Праверана 26 April 2015.
  13. Turner. Announcing TypeScript 0.9. TypeScript Language team blog. Microsoft (18 чэрвеня 2013).
  14. Generics in Typescript. Microsoft.