TypeScript vs JavaScript – Jaký je rozdíl a který byste měli použít?

Tento článek pojednává o rozdílech mezi strojopisem a JavaScriptem, o problémech, které řeší, a o tom, který je nejlepší použít.

TypeScript se mi moc líbí a hodně ho používám. Řeší tolik problémů JavaScriptu a výrazně usnadňuje psaní dobrého kódu JavaScript (jakmile se naučíte používat TypeScript ).

Tento článek je tedy více o tom, proč byste měli použijte TypeScript (kdy ho můžete použít), kdy/kde jej můžete použít a problémy, které řeší.

Tento článek se dobře hodí k následujícím článkům a poskytuje vám přehled řady programovacích jazyků zaměřených na web:

Jaký je rozdíl mezi JavaScriptem a Node.js? Které mám použít?

Výběr mezi PHP a JavaScriptem pro váš projekt

Co je JavaScript?

JavaScript začal žít v polovině 90. let jako skriptovací jazyk pro přidávání interaktivity na webové stránky.

Postupem času se vyvinul do plnohodnotného programovacího jazyka, který lze spustit i mimo webový prohlížeč (podrobněji o tom v našem článku o Node.js).

Co jsou to „typy“?

V počítačovém programování proměnná ukládá informace – hodnotu nebo soubor hodnot, které budeme označovat jako data .

data může být cokoli – číslo, slovo, věta, datum – může dokonce představovat celý objekt a atributy, které jej popisují jako jednotlivá pole, vše uloženo v proměnné .

Proměnná má typ – číslo, slovo, věta, datum – to vše lze považovat za typ proměnné .

 typ proměnné říká programovacímu jazyku, co lze s proměnnou dělat. Číslům lze přiřadit číselné hodnoty a násobit je, datům lze přiřadit hodnoty data a přidávat dny nebo hodiny atd.

JavaScript je notoricky volně zadali. S jakýmkoli typem proměnné můžete dělat v podstatě cokoli. To vede k neočekávaným výsledkům – slova interpretovaná jako čísla používaná v matematických rovnicích jsou jedním z nejběžnějších. To činí JavaScript nepraktickým pro složité aplikace.

Co je tedy TypeScript?

TypeScript je superset JavaScriptu. Přidá přísné typing – vynucení toho, které hodnoty lze přiřadit proměnným a co lze udělat, aby byl kód spolehlivější, a přidává spoustu dalších vylepšení, aby byl JavaScript lepší pro vytváření složitých aplikací.

Superset znamená, že přidává funkce do JavaScriptu, přičemž je stále kompatibilní se stávajícím kódem Javascript. Představte si to takto – všechny funkce JavaScriptu jsou také funkcemi TypeScript, ale JavaScript neobsahuje funkce přidané do TypeScript.

Kód strojopisu je kompilován před spuštěním. Kompiluje se (nebo převádí) do běžného starého JavaScriptu – díky tomu je kompatibilní se stávajícími prostředími kompatibilními s JavaScriptem, jako jsou webové prohlížeče a Node.js.

V podstatě to dělá JavaScript lepší a běží všude tam, kde JavaScript již funguje. Skvělé věci .

Jaké problémy řeší TypeScript (proč byste jej měli používat)?

Silné psaní

Silné psaní omezuje, co můžete dělat s proměnnými různých typů, ale není to omezení!

Znamená to pouze, že nemůžete proměnnou zneužít. Zabrání vám to dát proměnné, která by měla být číslem, řetězcovou hodnotu. To omezuje chyby a odstraňuje mnoho šancí na snadné chyby.

Vlastní typy

Většina programovacích jazyků nemá auto typ, ale můžete definovat svůj vlastní typ, který obsahuje všechny aspekty auta, které byste mohli chtít uložit.

Můžete vytvořit typ která ukládá informace, jako je barva, značka, rok nebo model auta, přiřazuje vlastníka nebo přidává vaše vlastní funkce do třídy, která definuje typ auta .

Můžete jít dále a přidat k vlastnímu typu pomocné funkce a metody – ty by bylo možné spustit na jakékoli proměnné auta zadejte kdekoli ve vaší aplikaci.

Jednoduchost a čitelnost

TypeScript usnadňuje rozdělení kódu do samostatných souborů, takže vaše vlastní auto typ by mohl žít ve vlastním samostatném souboru – žádné hledání a upravování dlouhých souborů.

Silně vynucené psaní bude znamenat, že víte, co je proměnná a co s ní lze dělat. Podšívka , procesy skenování vašeho kódu na chyby, upozorní na zneužití proměnných (např. při pokusu o počítání s řetězcem).

ECMA Script 6 (ES6)

‚JavaScript‘ není ve skutečnosti oficiálním názvem programovacího jazyka – je to spíše značka, ale stalo se běžným termínem pro ECMA Script (ošklivý oficiální název jazyka). TypeScript podporuje a podporuje používání všech nejnovějších funkcí ECMA Script verze 6.

Podporuje osvědčené postupy

TypeScript vás vybízí ke strukturování aplikací a správnému používání typů – pomáhá vám vytvářet lepší aplikace.

Dobře strukturované aplikace se samy dokumentují – pokud je kód snadno čitelný, jeho záměr je jasný a vy musíte psát méně komentářů vysvětlujících, co dělá.

Dobře strukturované aplikace jsou také méně náchylné k chybám – šetří vám čas.

Kde mohu použít TypeScript / Kdo používá TypeScript?

  • Úhlové
    • Angular je rámec vyvinutý společností Google a vytvořený pomocí rámce Angular a používá ho Google k vytváření řady svých mobilních aplikací.
  • Iontové
    • Ionic je postaven na Angularu a rozšiřuje jej a přidává mnoho snadno použitelných komponent a nástrojů, aby byl vývoj pro mobilní zařízení přístupnější.
  • Microsoft
    • Microsoft jsou ve skutečnosti pastýři celého projektu TypeScript. Vedli jeho vývoj a jejich programovací sada Visual Studio je jedním z nejlepších prostředí pro kódování TypeScript (a běží na Linuxu! ?)
  • Prodleva
    • Slack, oblíbená platforma pro obchodní zasílání zpráv, používá TypeScript k vytváření svých chatovacích klientů
  • Já!
    • Použil jsem TypeScript k vytvoření několika docela velkých projektů, které a) Rozhodně nemohlo být spolehlivě vytvořeno v prostém JavaScriptu a b) Vedlo by to k úplné nesrozumitelné , nabubřelé kódové základny, kdyby mě TypeScript nepobízel ke správné struktuře kódu.

Jak mohu začít?

Vzhledem k tomu, že TypeScript je třeba zkompilovat, jsou při vývoji s ním vyžadovány některé další kroky.

Je tu také trochu křivky učení – některé nové postupy a syntaxe, které se můžete naučit kromě JavaScriptu, který již znáte.

Jedním z nejlepších způsobů, jak začít, je Ionic Framework.

https://ionicframework.com/

Po instalaci framework Ionic nastaví plné prostředí pro vývoj mobilních aplikací, které dokáže vytvářet aplikace pro mobilní a desktopové operační systémy (včetně Linuxu!).

Dokumentace Ionic je důkladná a provede vás procesem vývoje jednoduchých i složitých mobilních aplikací. A protože je vše napsáno v TypeScriptu, naučíte se TypeScript, zatímco se budete učit vytvářet kompletní aplikace.