====== 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}}//