TypeScript

TypeScript on Microsoftin kehittämä ja ylläpitämä ohjelmointikieli, joka lisää valinnaisen staattisen tyypityksen  JavaScriptiin. Se on suunniteltu suurten sovellusten kehittämiseen ja transpiloitavaksi JavaScriptiksi. Koska JavaScript on TypeScriptin osajoukko, olemassa olevat JavaScript-ohjelmat ovat myös kelvollisia TypeScript-ohjelmia.

Käyttö
TypeScriptiä voidaan käyttää JavaScript-sovellusten kehittämiseen sekä asiakas- että palvelinpäässä (kuten Node.js tai Deno). Transpilaatiossa on useita vaihtoehtoja. TypeScriptin oletustarkistusta voidaan käyttää tai Babel-kääntäjän avulla TypeScript voidaan muuttaa JavaScriptiksi.

Ominaisuudet
TypeScript tukee määritystiedostoja, jotka voivat sisältää tyyppitietoja olemassa olevista JavaScript-kirjastoista, aivan kuten otsikkotiedostot voivat kuvata olemassa olevien objektitiedostojen rakennetta. Näin muut ohjelmat voivat käyttää tiedostoissa määritettyjä arvoja ikään kuin ne olisivat staattisesti kirjoitettuja TypeScript-kokonaisuuksia. Suosituille kirjastoille, kuten jQuerylle, MongoDB:lle ja D3.js:lle on kolmannen osapuolen otsikkotiedostoja. Jos kirjastolle ei ole saatavilla otsikkotiedostoja, ohjelmoijan on itse määriteltävä tyypit, jotta kirjastoa voisi käyttää. TypeScript-otsikot Node.js-perusmoduuleille ovat myös saatavilla, mikä mahdollistaa Node.js-ohjelmien kehittämisen TypeScriptissä.

TypeScript-kääntäjä itse on kirjoitettu TypeScriptillä ja käännetty JavaScriptiksi. Se on lisensoitu Apache License 2.0 -lisenssillä. TypeScript on mukana ensiluokkaisena ohjelmointikielenä Microsoft Visual Studio 2013 Update 2:ssa ja uudemmissa C#:n ja muiden Microsoft-kielten ohella.TypeScript Homepage, "Visual Studio includes TypeScript in the box, starting with Visual Studio 2013 Update 2" Virallinen laajennus mahdollistaa myös Visual Studio 2012:n tukemisen TypeScriptille.TypeScript 1.0 Tools for Visual Studio 2012 Anders Hejlsberg, C#:n johtava arkkitehti ja Delphin ja Turbo Pascalin luoja, on työskennellyt TypeScriptin kehittämisen parissa.

 Rajoitukset 
TypeScript-kääntäjä poistaa tyypit käännöksen aikana (engl. type erasure). Tyypitys siis antaa suojaa tyyppivirheitä vastaan kehityksen aikana, mutta ei takaa, että tyypit olisivat ajon aikana oikein.

TypeScriptiä on kritisoitu vaikeasti tulkittavista tyyppivirheviesteistä.

 Esimerkki 

// Määritellään uusi tyyppi taulukolle numeroita
type NumeroTaulukko = number[];

// Esitellään muuttuja joka on tyyppiä NumeroTaulukko
const minunNumerot: NumeroTaulukko = [0, 1, 2, 3, 4, 5];

// Jos yrität laittaa merkkijonon taulukkoon, TypeScript tulostaa virheen
// minunNumerot.push("Hei");

// Funktio joka ottaa NumeroTaulukko tyyppisen parametrin
function laskeYhteen(numerot: NumeroTaulukko): number {
  let summa = 0;
  for (const numero of numerot) {
    summa += numero;
  }
  return summa;
}

// Kutsutaan funktiota NumeroTaulukolla minunNumerot
const yhteensa = laskeYhteen(minunNumerot);

console.log(`Kokonaissumma on ${yhteensa}`);
 Katso myös 
 Dart
 Kotlin

 Lähteet 

 Aiheesta muualla 
 TypeScript- projekti GitHubissa
 TypeScript-kielen määritys
 CATS Cross Platform TypeScript Editor

Luokka:Ohjelmointikielet
Luokka:Alustariippumattomat ohjelmat
Luokka:Microsoftin ohjelmistot
Luokka:Oliopohjaiset ohjelmointikielet
Luokka:JavaScript
Luokka:Vuoden 2012 ohjelmistot
Luokka:2010-luvun ohjelmointikielet