proč byste měli zvolit TypeScript přes JavaScript

TypeScript roste v jeho popularitě za posledních pár let. Je zmíněn mezi pěti nejslibnějšími jazyky v roce 2020. Angular, jeden z největších frontendových rámců, používá TypeScript. Asi 60% programátorů JS již používá TypeScript a 22% si to přeje vyzkoušet. Proč?

Historicky, JavaScript skončil jako hlavní jazyk pro skriptování webových stránek a aplikací na Internetu. Nyní je možné používat JavaScript na frontendu i backendu pomocí rámců, jako je Node.js a Deno.

ale byl vytvořen JavaScript pro vytváření velkých, složitých systémů, jako jsou ty na moderním webu? Ne.

v tomto článku vám představíme řešení-TypeScript – a začneme směrem k cestě přidávání typů do kódu JavaScript.

zde jsou některé z bodů, které pokryjeme:

  • co je to TypeScript?
  • jaké jsou typy a jak fungují v TS?
  • JavaScript vs. TypeScript: který z nich si vybrat?
  • jak začít s TypeScript.
  • další zdroje pro studium strojopisu.

co je TypeScript?

Stručně řečeno, TypeScript je nadmnožina JavaScriptu, která má volitelné psaní a kompiluje do prostého JavaScriptu.

zjednodušeně řečeno, TypeScript je technicky JavaScript se statickým psaním, kdykoli ho chcete mít.

jaké by byly důvody pro přidání statického psaní do JavaScriptu?

mohu uvést alespoň tři:

  • můžete vyhnout mistrně skryté-ninja chyby jako klasické 'undefined' is not a function.
  • je To jednodušší, aby se refaktorovat kód bez lámání to výrazně.
  • orientace v komplexních rozsáhlých systémech už není noční můrou.

ve skutečnosti studie ukazuje, že 15% všech chyb JavaScriptu lze detekovat pomocí TypeScript.

svoboda dynamického psaní často vede k chybám, které nejen snižují efektivitu práce programátora, ale mohou také zastavit vývoj kvůli rostoucím nákladům na přidávání nových řádků kódu.

Proto, selhání JavaScript zahrnout věci jako typy a kompilovat-čas chyba kontroly je špatná volba pro kód na straně serveru v podnicích a velkých codebases. Jak říká jejich slogan, TypeScript je JavaScript, který se měří.

co se musím naučit používat strojopis?

TypeScript je v podstatě JS linter. Nebo JS s dokumentací, které kompilátor rozumí.

Proto, na rozdíl od jiných jazyků, jako CoffeeScript (který přidává syntaktický cukr) nebo PureScript (což nevypadá jako JavaScript), nemusíte se učit hodně začít psát psacím Stroji kód.

typy v TS jsou volitelné a každý soubor JS je platný soubor TypeScript. Zatímco kompilátor si bude stěžovat, pokud máte v počátečních souborech chyby typu, vrátí vám soubor JavaScript, který funguje stejně jako předtím. Ať jste kdekoli, TypeScript se s vámi setká a je snadné si postupně budovat své dovednosti.

Používá se TypeScript na frontendu nebo backendu?

TypeScript je kompilován do JavaScriptu. Proto lze TS použít kdekoli, kde lze použít JS: frontend i backend.

JavaScript je nejoblíbenější jazyk pro implementaci skriptování pro rozhraní aplikací a webových stránek. TypeScript lze tedy použít pro stejný účel, ale svítí ve složitých podnikových projektech na straně serveru.

v Serokell je většina našeho webového rozhraní implementována v TypeScript.

jaké jsou typy a jak fungují v TS?

Stručný úvod do typů

Typy jsou způsob, jak říct, jaká programy z nesprávné předtím, než jsme se spustit je tím, že popisuje v našem kódu, jak máme v plánu použít naše data. Mohou se lišit od jednoduchých typů, jako je číslo a řetězec, až po složité struktury dokonale modelované pro naši problémovou doménu.

programovací jazyky spadají do dvou kategorií: staticky psané nebo dynamicky psané.

v jazycích se statickým typováním musí být typ proměnné znám v době kompilace. Pokud deklarujeme proměnnou, měla by být kompilátorem známa (nebo neplodná), pokud to bude číslo, řetězec nebo boolean. Mysli Na Javu.

v jazycích s dynamickým psaním to nemusí být nutně tak. Typ proměnné je znám pouze při spuštění programu. Mysli Na Krajtu.

TypeScript může podporovat statické psaní, zatímco JavaScript ne.

vzhledem k statickému psaní TypeScript se budete muset více snažit:

  • zavést nedefinované proměnné (compile-time varování, pomoc)
  • součet dvou řetězců, které mají čísla v nich (jako „4“ + „20“ = „420“)
  • dělat operace na věci, které nemají povolení nich, jako je ořezávání číslo.

se systémy statických typů můžete vytvářet vlastní kompozitní typy. To umožňuje inženýrům podrobněji vyjádřit své záměry.

explicitní typy také dělají váš kód samodokumentací: zajišťují, aby vaše proměnné a funkce odpovídaly tomu, co je zamýšleno, a umožňují počítači postarat se o zapamatování okolního kontextu.

Typy Strojopis

Strojopis má řadu základních typů, jako je Boolean, Number, String, Array, n-Tice atd. Některé z nich v JS neexistují; více se o nich můžete dozvědět v dokumentaci TypeScript.

Kromě těchto, zde jsou některé další typy chceme funkce předvést expresivitu TS:

Žádné & Neznámé

Zatímco jakýkoli typ může zahrnovat, no, cokoliv, co si budete přát, neznámý je jeho typ-bezpečné protějšek.

kdykoli chcete uniknout typovému systému, any vám umožní přiřadit libovolnou proměnnou JavaScriptu. Často se používá k modelování příchozích proměnných (například z API třetích stran), které dosud nebyly zkontrolovány a jejichž typ není znám.

Neznámý je hodně jako kterýkoli jiný, ale nedovolí vám provádět žádné operace s proměnnou dříve, než je explicitně typově zkontrolována.

Void

Void se používá, když neexistuje žádná hodnota vrácena, například, jako návratový typ funkce, která vrátí nic.

Nikdy

Nikdy je návratový typ pro něco, co by nikdy dojít, stejně jako funkce, která se bude hodit výjimku.

Průsečík & Unie typy

Tyto umožňují vytvářet vlastní typy, aby lépe odpovídaly svou logiku.

typy průsečíků umožňují sestavit několik základních typů do jednoho typu. Můžete například vytvořit osobu vlastního typu, která má name: string a phone_number: number. Je to ekvivalentní říkat: Chci, aby můj typ byl ten a ten.

typy Union umožňují pro váš typ vzít jeden z více základních typů. Můžete například mít dotaz, který vrací buď result: string nebo undefined. To je ekvivalentní říkat: Chci, aby můj typ byl ten či onen.

pokud si myslíte o typech jako mezery, všechny tyto typy rychle dávají smysl.

typy v TypeScript mohou být implicitní i explicitní. Pokud své typy explicitně nepíšete, kompilátor použije inferenci typu k odvození typů, které používáte.

Psaní je explicitně, nicméně, poskytuje výhody, jako je pomoc ostatním vývojářům, že číst váš kód, a ujistěte se, že to, co vidíte, je to, co kompilátor vidí.

TypeScript vs. JavaScript

vyplatí se být pragmatický. Podívejte se na tento graf:

Z ničeho nic, Strojopis je nyní v 7. pozici v GitHub pull žádosti o Q1 2020, nad PHP a C. (Zdroj)

Zatímco značnou příčinou tohoto je podpora Strojopis společnostmi, jako je Microsoft (který ho vytvořil) a Google, to je podporován pro dobrý důvod.

3 důvody pro výběr TypeScript přes JavaScript

1. Strojopis je spolehlivější

na rozdíl od JavaScript, TypeScript kód je spolehlivější a snadnější k refaktorovat. To umožňuje vývojářům vyhnout se chybám a dělat přepisuje mnohem jednodušší.

Typy neplatným většina z hloupé chyby, které se mohou dostat do Javascriptu codebases, a vytvořit rychlou zpětnou vazbu, aby opravit všechny malé chyby při psaní nového kódu a refactoring.

2. Strojopis je více explicitní

Což typy explicitní zaměřuje naši pozornost na to, jak přesně náš systém je postaven a jak jednotlivé části, jak se komunikovat s ostatními. Ve velkých systémech je důležité být schopen abstrahovat zbytek systému při zachování kontextu. Typy nám to umožňují.

3. TypeScript a JavaScript jsou prakticky zaměnitelné, tak proč ne?

vzhledem k tomu, JavaScript je podmnožina TypeScript, můžete použít všechny knihovny JavaScript a kód, který chcete v kódu TypeScript.

Nejvíce populární Javascriptové knihovny typů v roce 2020 – Určitě Napsal je úložiště s typy pro mnoho různých JavaScript knihovny, které můžete použít, aby se vaše interakce s nimi více typově bezpečné.

To znamená, že můžete postupně přijmout TypeScript JavaScript ve vašem codebase, první přidání typů na jednotlivé moduly a pak se rozšiřuje… konzumovat známého vesmíru, myslím.

nevýhody strojopisu

nemůžete jen vzít tým JavaScript nebo úložiště JavaScript a okamžitě je přepnout na idiomatický TypeScript. Existují kompromisy, a předem Časové oběti, které musíte udělat.

i když můžeme argumentovat o úsporách, které jsou explicitní o typech vám v dlouhodobém horizontu, v krátkodobém horizontu, to trvá více času na jejich přidání. To pravděpodobně není velký problém, ale je to argument ve prospěch JavaScriptu.

proto nemusíte volit TypeScript pro malé projekty a prototypy pro vlastní potřebu.

Testů vs. Typy

stručně dotknout diskuse testů vs. typy: obě tyto věci chytit různé druhy chyb, takže to dává smysl, aby obojí v nonpartisan-jako způsob.

stále můžete používat jak testování jednotek, tak pokročilejší techniky, jako je testování založené na vlastnostech s TS při zachování výhod statického typu systému.

abychom to shrnuli, zde je rychlé srovnání obou jazyků:

Strojopis JavaScript
TS je objektově orientovaný skriptovací jazyk JS je objektově orientovaný skriptovací jazyk
Závislé jazyk (zkompiluje do Javascriptu) Nezávislý jazyk (může být interpretován a popraven)
Zkompilovaný jazyk, nelze spustit přímo v prohlížeči Interpretovaný jazyk, provedený přímo ve webovém prohlížeči
Může být staticky typované Dynamicky typované
Lepší strukturované a stručné flexibilnější, protože nejste omezeni typovým systémem
má .ts rozšíření má .js souboru
Vytvořené v Microsoft tím, že Anders Hejlsberg (designer pro C#) a spravuje Microsoft Vytvořené Brendan Eich (Netscape) a udržuje ECMA (European Computer Manufacturers Association).
spravedlivý volbou pro složité projekty Dobře pracovat s malými, jednoduchými projekty

Strojopis quickstart průvodce

TypeScript compiler

Sestavit TS kód, musíte nainstalovat tsc (zkratka pro TypeScript compiler). Nejjednodušší způsob, jak to udělat, je prostřednictvím terminálu. To lze snadno provést pomocí npm pomocí následujícího příkazu:

npm install -g typescript

pokud chcete používat TypeScript s kódem Visual Studio, je na jejich webových stránkách užitečný průvodce.

po instalaci tsc můžete soubory zkompilovat pomocí tsc filename.ts.

Migraci souborů z Javascriptu na Stroji

řekněme, že chceme změnit následující soubor JavaScript na Stroji vzhledem k podivnému chování:

function my_sum(a, b) { return a + b; }let a = 4; let b = "5";my_sum(a, b);

Dobré zprávy. Jakýkoli soubor JS je technicky platný soubor TypeScript, takže máte skvělý start – stačí přepnout příponu souboru na .ts od .js.

TypeScript má typ inference, což znamená, že může automaticky odvodit některé typy, které používáte, aniž byste je přidali. V tomto případě předpokládá, že funkce shrnuje dvě proměnné typu any, což je pravda, ale právě teď nemá velký užitek.

Pokud chceme sečíst pouze čísla, můžeme přidat typ podpisu my_sum aby to bylo přijímat pouze čísla.

function my_sum(a: number, b: number) { return a + b; }let a = 4; let b = "5";my_sum(a, b);

nyní nám TypeScript poskytuje chybu.

Argument of type 'string' is not assignable to parameter of type 'number'.

dobře, že jsme zjistili, kde je chyba. 🙂 Chcete-li dále uniknout chybám, jako jsou tyto, můžete také přidat definice typů proměnných.

let b: number = "5" // Type '"5"' is not assignable to type 'number'.let b: number = 5 // Everything ok. 

TypeScript je poměrně flexibilní v tom, co může dělat a jak vám může pomoci. Pro méně triviální příklad, jak přesunout stávající kódovou základnu JavaScript na TypeScript nebo použít TypeScript ke zlepšení kódu JS, přečtěte si tuto příručku.

jak používat TypeScript v prohlížeči?

Chcete – li spustit TypeScript v prohlížeči, je třeba jej převést do JavaScriptu pomocí kompilátoru TypeScript (tsc). V tomto případě tsc vytvoří nový .soubor js založený na .ts kód, který můžete použít jakýmkoli způsobem, můžete použít Soubor JavaScript.

Zdroje pro další učení

Strojopis Hluboký Ponor

Tato bezplatná webový zdroj má vše, co potřebujete začít s Strojopis, včetně podrobnější vysvětlení sekcí jsme se již zabývali zde.

Naučte Se Strojopis Od Nuly!

praktický 3-hodinový kurz, který jde přes všechny základní funkce Strojopis, jak to použít k interakci s některými JS frameworky, a jak využít sílu Stroji při psaní Javascriptu.

cvičení

cvičení je nejlepším zdrojem pro procvičování psaní kódu v novém programovacím jazyce. Mentoři, kteří vás nasměrují k idiomatickému kódu, spousta zábavných praktických úkolů – na tomto webu není nic, co by vás nemilovalo.

Závěry

Celkově, Strojopis je skvělý nástroj, mít ve svém sadu nástrojů, i když nechcete používat to, aby svou plnou kapacitu. Je snadné začít v malém a pomalu růst, učit se a přidávat nové funkce za pochodu. TypeScript je pragmatický a přívětivý pro začátečníky, takže se nemusíte bát.

doufám, že tento článek bude užitečný ve vaší cestě strojopisem. Pokud chcete pomoci nebo máte nějaké dotazy, nezapomeňte se jich zeptat na našich sociálních médiích, jako je Twitter nebo Facebook.