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.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya