Proč byste (pravděpodobně) měli používat Typescript
Dominik Grzedzielski
Senior Software Engineer
Každý, kdo používá ekosystém JavaScript, dnes zná Typescript. Typescript je jednou z nejoblíbenějších technologií* a jeho využití neustále roste (podíl využití vzrostl z 52% v roce 2018 na 78% v roce 2020)*.
Současná pozice Typescript nepřišla z ničeho nic, protože tato technologie dokáže skutečně zlepšit naše zkušenosti vývojářů. Explicitnější kódování zvyšuje kontrolu a předvídatelnost kód. V tomto článku se vás pokusím přesvědčit, abyste používali Typescript.
Obvykle se při vývoji aplikace v JavaScript, váš tok může vypadat takto:
Proveďte změnu,
Přejděte do aplikace a podívejte se na změněnou část / Spustit (související) testy.
Zjistěte, zda je vše v pořádku.
Pomocí Typescriptu můžete změnu skutečně provést a pokud se objeví nějaký problém. chyba typu v kódu, okamžitě se to dozvíte díky chybovému hlášení překladače nebo zpětné vazbě IDE v reálném čase. Kompilátor Typescriptu samozřejmě nevyřeší všechny problémy a neupozorní vás na všechny chyby, ale jeho pomoc může být neocenitelná.
Lepší dokončování syntaxe v IDE
Je to opravdu jednoduché. Pokud používáte dobré IDE, jako je WebStorm nebo VSCode, získáte. lepší doplňování syntaxe pomocí Typescriptu. Možná to nezní jako obrovské zlepšení zkušeností vývojářů, ale nakonec má každé zlepšení význam, protože může ušetřit. nás nějaký čas a opět zabránit překlepu nebo chybě. Navíc můžeme jednou definovat náš typ nebo rozhraní; protože si nemusíme stále pamatovat strukturu, můžeme se soustředit na psaní obchodní logiky.
Méně bolestivý refaktoring
Představte si, že musíte z jakéhokoli důvodu provést refaktorizaci, například jste se připojili k nějakému projekt a dostanete úkol přidat novou funkci, která je však nějakým způsobem spojena se starším kódem. Typescript vám to může usnadnit a ulehčit, protože když provedete změnu a na jiném místě je třeba provést další změnu, překladač vás na to upozorní.
Například - může to být změněná signatura funkce nebo po změně třeba vrátí něco úplně jiného, takže se bude lišit i vrácený typ.
Větší jistota ohledně kódové základny
JavaScript je slabě a dynamicky typovaný, takže při inicializaci proměnné hodnotou let query = '' později v kódu může vývojář omylem udělat něco iracionálního, např. query = true, a bude to platný kód JS.
V dobře napsaném kódu by nemělo dojít k přiřazení logické hodnoty proměnné, která byla dříve řetězcem. Obvykle tedy takové přiřazení se změnou typu vzniká chybou.
Při použití Typescriptu nemůžeme změnit typ proměnné, takže pokud vytvoříme proměnnou let query = '' proměnná, bude to řetězec a nebudeme moci omylem změnit jeho typ.
Pokud chceme, aby proměnná byla více než jednoho typu, vždy to uděláme explicitně pomocí typu union, např. řetězec | číslo.
Díky Typescriptu je tedy náš kód předvídatelnější a jednoznačnější. Typescript se také postará o explicitnost analýzy toku řízení, a pokud existuje možnost, že by se něco mohlo pokazit, upozorní vás.
Zde v příkladu na prvním místě pokud blok dostaneme chybu:
TS2339: Vlastnost 'battery' neexistuje u typu 'ClothingProduct' 2krát, pro bateriea beran vlastnosti.
Ve druhém bloku - jinak, dostaneme tuto chybu pro velikost nemovitosti. Je to samozřejmě jen příklad, který vám ukáže, jak se dá diskriminované odbory a analýza toku řízení pracovat v Typescriptu, takže s tímto kódem neděláme nic příliš složitého.
Snadný a postupný přechod z JavaScript
Platný kód JavaScript je zároveň platným kódem Typescriptu, takže můžete svou kódovou základnu migrovat krok za krokem. Obvykle je použití striktního režimu v Typescriptu dobrou praxí, ale v tomto případě, musíme začít s "strict": false na adrese tsconfig.json a měli bychom také nastavit další 2 možnosti.
"allowJs": true, // umožní nám používat soubory .js a typ v nich nebude kontrolován
"skipLibCheck": true // přeskočí kontrolu typů v knihovnách, které používáme
Díky těmto možnostem můžeme postupně přejít z JS na TS - soubor po souboru, přičemž stačí změnit příponu z .js(x) na .ts(x) a přidávání typů do souborů. Tímto přístupem se můžeme vyhnout stovkám nebo tisícům děsivých chyb při kompilaci.
Souhrn
Myslím, že bychom měli používat Typescript co nejčastěji možné, protože je to z dlouhodobého hlediska skutečně prospěšné. Pomáhá udržovat projekty, zvyšuje zkušenosti vývojářů a činí naši kódovou základnu přehlednější a spolehlivější.
Jako vždy však existují výjimky - například pro jednoduchou vstupní stránku. kde se JavaScript používá pouze pro přepínání tříd nebo jiný jednoduchý případ, nemá Typescript smysl. Musíme si také uvědomit, že abychom mohli Typescript plně využít, musíme se jej naučit používat na dostatečné úrovni, což může nějakou dobu trvat. Přesto si myslím, že je to velmi výhodná investice vašeho času.