====== TypeScript: JavaScript s typy ======
**TypeScript** je moderní nástroj, který řeší největší slabinu [[it:sw:javascript|JavaScriptu]] – jeho dynamickou a často nepředvídatelnou povahu. TypeScript kód se v prohlížeči přímo nespouští; musí být nejprve zkompilován (převeden) na čistý JavaScript.
===== 1. Proč používat TypeScript? =====
Hlavním přínosem je **statické typování**. Zatímco v JavaScriptu zjistíte, že sčítáte číslo s objektem, až při běhu programu (což způsobí pád), v TypeScriptu vás na to upozorní editor už během psaní.
* **Lepší IntelliSense:** Vývojové prostředí přesně ví, jaké vlastnosti mají vaše objekty, a nabízí přesné napovídání.
* **Snazší refaktorizace:** Přejmenování funkce nebo změna struktury dat je bezpečná, protože TypeScript najde všechna místa, kde se daný kód používá.
* **Dokumentace kódem:** Typy slouží jako živá dokumentace – hned vidíte, co funkce přijímá a co vrací.
---
===== 2. Základní syntaxe typů =====
Typy se definují pomocí dvojtečky `:` za názvem proměnné nebo parametru.
let vek: number = 25;
let jmeno: string = "Lucie";
let jeAktivni: boolean = true;
// Funkce s typovanými parametry a návratovou hodnotou
function secti(a: number, b: number): number {
return a + b;
}
---
===== 3. Rozhraní (Interfaces) a Typy (Types) =====
TypeScript umožňuje definovat složité tvary objektů pomocí rozhraní. To je klíčové pro udržení pořádku v datech získávaných např. z [[it:sw:rest_api|REST API]].
interface Uzivatel {
id: number;
jmeno: string;
email?: string; // Otazník znamená, že vlastnost je volitelná
}
const nasepkavac = (u: Uzivatel) => {
console.log(u.jmeno);
};
---
===== 4. Proces kompilace (Transpilace) =====
Prohlížeče rozumí pouze JavaScriptu. Nástroj `tsc` (TypeScript Compiler) vezme vaše soubory `.ts` a vygeneruje z nich soubory `.js`. Během tohoto procesu TypeScript "zmizí" – v cílovém souboru už žádné typy nejsou, zůstane jen čistá logika.
---
===== 5. Porovnání: JS vs. TS =====
^ Vlastnost ^ JavaScript ^ TypeScript ^
| **Typování** | Dynamické (při běhu) | Statické (při kompilaci) |
| **Odhalování chyb** | Runtime (uživatelem) | Compile-time (vývojářem) |
| **Škálovatelnost** | Náročné u velkých projektů | Výborná díky struktuře |
| **Učení** | Rychlé, snadné | Vyžaduje pochopení typového systému |
---
===== 6. Kdy TypeScript zvolit? =====
Dnes je TypeScript průmyslovým standardem. Je téměř nezbytný pro:
* Práci ve velkých týmech.
* Projekty s dlouhou životností.
* Používání moderních frameworků jako **Angular** (ten je na TS postaven), **React** nebo **Vue**.
----
//Související články://
* [[it:sw:javascript|Základy JavaScriptu]]
* [[it:sw:react|Framework React a moderní web]]
* [[it:sw:json|Formát JSON a přenos dat]]
//Tagy: {{tag>programming typescript javascript web-development frontend coding-standards}}//