TypeScript je staticky typovaná nadmnožina jazyka JavaScript. To znamená, že všechny programy napsané v JavaScriptu (od verze ES2015) jsou také validní v TypeScriptu, avšak můžete je obohatit o další syntaktické prvky. Jak již název napovídá, hlavním přínosem jazyka TypeScript pro programátora jsou datové typy, statická typová kontrola a typová inference. Kromě typového systému můžete také využít všechny obvyklé moderní konstrukty, jako jsou třídy, generické a množinové typy, mixiny, apod.
K deklaraci proměnných slouží tři klíčová slova:
// libovolný typ
const something: any;
// prázdný typ
const nullValue = null;
const undefinedValue = undefined;
// číselná hodnota
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
// pole
const fruits: string[] = ['Apple', 'Orange', 'Banana'];
const animals: Array<string> = ['Cat', 'Dog', 'Rabbit']; // generický typ
// uspořádané n-tice (tuples)
const [a, b, c, d] = ["The", "Answer", "is", 42];
// množinový typ (union)
const rating = string | null
// klasický zápis
function sum(a: number, b: number): number {
return a + b;
}
// funkcionální zápis
const sum = (a: number, b: number): number => {
return a + b;
}
// funknční výraz
const sum = function (a: number, b: number): number {
return a + b;
}
if (a < 5) { /* ... */ } else { /* ... */ }
switch (a) { case 1: /* todo */ break; default: /* todo */ break; }
while (a < 5) { /* ... */ }
do { /* ... */ } while (a < 5)
// TODO
interface Bird {
fly();
layEggs();
}
interface Fish {
swim();
layEggs();
}
function getSmallPet(): Fish | Bird {
// ...
}
let pet = getSmallPet();
pet.layEggs(); // okay
pet.swim(); // errors
interface SearchFunc {
(source: string, subString: string): boolean;
}