Co je to Typescript

TypeScript je JavaScript s typy; je to staticky a silně typový programovací jazyk, který se překládá do JavaScriptu. TypeScript přináší nové možnosti a nástroje jak kontrolovat správnost kódu nebo jak kód bezpečně refaktorovat. Typická chyba, kterou můžeme udělat v JavaScriptu je, že přistoupíme ke klíču objektu, který ve skutečnosti neexistuje, například takto:

function getUserNameLength(user) {
    return user.name.length;
}

getUserNameLength({
    firstName: "Alan",
    lastName: "Turing",
})

V JavaScriptu nám tento kód spadne na chybě Uncaught TypeError: Cannot read properties of undefined (reading 'length') ve chvíli, kdy se daný kód provádí – někdy v produkci, třeba když si zákazník chce něco objednat v našem eshopu. TypeScript nám pomáhá podobné chyby odhalit dříve tím, že provádí statickou kontrolu kódu. Kontroluje kód bez toho, aniž by kód samotný musel být spuštěn. Kód bychom mohli upravit takto:

interface User {
    name: string;
}

function getUserNameLength(user: User): number {
    return user.name.length;
}

getUserNameLength({
    firstName: "Alan",
    lastName: "Turing",
})

Tímto říkáme, že funkce getUserNameLength očekává na vstupu typ User a ten definuje, že je to objekt, který má klíč name, jež je typu string. Nyní stačí, abychom kód prohnali TypeScriptím překladačem a ten nám zahlásí chybu: Object literal may only specify known properties, and 'firstName' does not exist in type 'User'. Aniž bychom kód samotný spouštěli, odhalili jsme chybu!