TypeScript
TypeScript je open-source programovací jazyk vytvořený a spravovaný firmou Microsoft. Jedná se o nadstavbu nad jazykem JavaScript, která jej rozšiřuje o statické typování a další atributy, které známe z objektově orientovaného programování (třídy, moduly, a další).
Paradigma | skriptovací, objektový, strukturovaný, imperativní, funkcionální |
---|---|
Vznikl v | 1. října 2012 |
Autor | Microsoft |
Vývojář | Microsoft |
Poslední verze | 4.0.2 (20. srpna 2020) |
Ovlivněn jazyky | JavaScript, Java, C# |
Ovlivnil jazyky | AtScript |
Licence | Apache License 2.0 |
Web | http://www.typescriptlang.org/ |
Samotný kód psaný v TypeScriptu se kompiluje do JavaScriptu. Jelikož je TypeScript nadstavbou nad JavaScriptem, je každý JavaScriptový kód automaticky validním TypeScript kódem.
TypeScript podporuje hlavičkové soubory, které mohou obsahovat informace o typech a rozhraních již existujících knihoven. Tím nám umožňuje používat externí knihovny, které nebyly napsány v TypeScriptu, včetně striktního typování. V tuto chvíli existují hlavičkové soubory pro známé knihovny jako jQuery, MongoDB, Node.js nebo D3.js.
Vlastnosti jazyka
TypeScript je rozšířením standardu ECMAScript 5. Rozšiřujícími vlastnostmi jsou:
- anotace typů a typová kontrola
- třídy
- rozhraní
- výčtový typ
- mixiny
- genericita
- moduly
- zkrácená syntaxe pro anonymní funkce
- výchozí hodnoty parametrů funkcí
Anotace typů
TypeScript nabízí statické typování prostřednictvím anotací umožňující typovou kontrolu při kompilaci. Tyto anotace jsou nepovinné a není třeba je použít, pokud chceme využívat dynamického typování.
function secti(a: number, b: number): number {
return a + b;
}
Pro primitivní datové typy zavádí TypeScript anotace number
, string
a boolean
. Pro dynamický typ lze použít anotaci any
.
Anotace typů lze umístit do samostatného souboru, což umožňuje mj. používat uvnitř TypeScript kódu již existující JavaScriptové knihovny. Těm stačí pouze nadefinovat tyto anotace a využít tak statického typování.
Rozhraní
interface IOsoba
{
naRetezec(): string;
}
Třídy
TypeScript podporuje třídy dle standardu ECMAScript 6.
class Osoba implements IOsoba
{
private jmeno: string;
private vek: number;
private plat: number;
constructor(jmeno: string, vek: number, plat: number) {
this.jmeno = jmeno;
this.vek = vek;
this.plat = plat;
}
naRetezec(): string {
return this.jmeno + " (" + this.vek + ")" + "(" + this.plat + ")";
}
}
Genericita
TypeScript podporuje Generické programování.
Moduly
TypeScript umožňuje pomocí modulů zapouzdření tříd, rozhraní, funkcí a proměnných do vlastního jmenného prostoru.
module Organismy
{
class Osoba {
// ...
}
}
Externí odkazy
- Obrázky, zvuky či videa k tématu TypeScript na Wikimedia Commons
- oficiální web (anglicky)
- TypeScript projekt na GitHubu
- Specifikace TypeScript jazyka (anglicky)