TypeScript on vabavaraline programmeerimiskeel, mida arendabMicrosoft. TypeScript võimaldab lisada staatilist tüübikirjeldust. TypeScripti võib kasutada nii kliendi- kui ka serveripoolsete (Node.js)JavaScripti rakenduste loomiseks.
TypeScript on loodud suurte rakenduste loomiseks ning kompileerub JavaScriptiks[1]. Kuna JavaScript on TypeScripti alamhulk, on kõik olemasolevad valiidsed JavaScript programmid ühtlasi ka valiidsed TypeScripti programmid.
TypeScript sai avalikuks 2012. aasta oktoobris, kaks aastat pärast Microsofti enda sisemist arendust[2][3]. Aastast 2013 toetavad TypeScripti peale Microsoft Visual Studio ka teised IDEsid, kuhu kuulvad näiteksEclipse, Emacs, Vim, Sublime, Webstorm ja Atonit[4].
2014. aasta juunis teatas arendustiim uuest kompilaatorist, mis oli jõudluse poolest 5 korda efektiivsem.
2016. aasta septembris väljastati TypeScript 2.0, mis võimaldas arendajatel valikuliselt ennetada muutujatenull
väärtust[5].
TypeScript loodi tulenevalt JavaScripti puudustest, mis tekkisid suurte rakenduste loomisel Microsoftis[6]. Eesmärk oli luua lahedus, mis oleks ühilduv ning töötaks igal platvormil.
TypeScript vastab kõikideleECMAScript 2015 standarditele, võimaldades seejuures luua klasse, mooduleid ning kasutada noolefunktsioone.
TypeScriptiga on võimalik kasutada olemasolevat JavaScripti koodi ning muuta see turvalisemaks, annoteerides muutujate tüüpe. Lisada on võimalik ka olemasolevaid JavaScripti teeke, aga arvestama peab sellega, et need tuleb annoteerida. Mõnikord on võimalik installida ka olemasolevaid tüübideklaratsioone, kuid nende puudumisel tuleb programmeerijal need ise kirjutada.
TypeScript võimaldab staatilist tüübikirjeldust, annoteerides muutujate tüüpe. Tüübikontroll viiakse läbi kompileerimisajal. Tüübikirjeldus on valikuline, mis tähendab, et kõiki tüüpe ei pea määrama (erinevalt Javast) ning lubatud on kirjutada ka tavalist JavaScripti.
functionliida(vasak:number,parem:number):number{returnvasak+parem;}
Primitiivsed annoteerimistüübid on number (number
) , tõeväärtus (boolean
) ja sõne (string
).
TypeScripti kompileerimise ajal on võimalik genereerida deklaratsiooni faile (laiendiga .d.ts), mis on liideseks komponendile, mille kompileerib JavaScript. Selle käigus viskab kompailer ära kõik funktsioonide ja meetodite kehad, jättes alles ainult signatuurid.
declaremodulearitmeetika{liida(vasak:number,parem:number):number;lahuta(vasak:number,parem:number):number;korruta(vasak:number,parem:number):number;jaga(vasak:number,parem:number):number;}
TypeScript toetab ECMAScript 2015 klasse, millele on võimalik lisada ka tüüpe:
classIsik{privatenimi:string;privatevanus:number;privatepalk:number;constructor(nimi:string,vanus:number,palk:number){this.nimi=nimi;this.vanus=vanus;this.palk=palk;}toString():string{return`${this.nimi} (${this.vanus}) (${this.palk})`;// Versioon 1.4}}