Varför är TypeScript värt att kika närmare på?

TypeScript är ett “superset” av JavaScript; ett program skrivet i JavaScript är redan giltig TypeScript-kod. Förutom sin vanliga kod kan man dessutom lägga till typ-annoteringar, och deklarera variabler som “string”, “number”, etc.

Det kan låta konstigt att presentera “fler kompileringsfel” som en fördel. Men på senare år används JavaScript mer och mer för utveckling av stora applikationer och bibliotek — språket som var anpassat för att skriva små skript på en handfull rader börjar på allvar växa ur sina skor när det gäller att hantera frågor som modularitet, komplexa beroenden, och tusentals eller hundratusentals rader kod. I ett sådant läge är det bra att få tidiga fel vid kompilering än att saker går sönder under körning.Imagine JavaScript is a pen. You're not so excited about it, but it can at least put ink on paper so you can do your job. TypeScript is when someone says to you "Here, use this pen instead: it does the same things as your old pen, but it helps you write correctly and also gives you some handy tips on what works and what needs to be fixed". Tänk dig att JavaScript är en penna. Du är inte så jätteförtjust i den, men den kan åtminstone sätta bläck på papper så att du kan göra ditt jobb. TypeScript är när någon säger till dig "här, använd den här pennan istället; den gör samma saker som din gamla penna, men den hjälper dig att skriva rätt och ger dig dessutom vettiga tips på vägen om vad som funkar och vad som måste fixas”.

TypeScript är en bättre version av JavaScript?

I slutänden kommer du att kunna skicka in arbete av högre kvalitet, eftersom TypeScript redan har hittat en massa misstag på vägen som man inte behöver köra programmet för att upptäcka. Och du kan arbeta snabbare, mer effektivt, och med högre förtroende för att saker blir rätt.

En sak som jag har insett på vägen är att det inte handlar så mycket om “fel hittas under kompilering” som “fel hittas medan man skriver koden”. Moderna utvecklingsmiljöer som Visual Studio och WebStorm har utmärkt stöd för att hitta fel i och ge tips om ens kod under gång, medan man skriver. Folk som kommer från de stora statiska språken är redan vana vid detta, och det brukar kännas lite som att TypeScript återställer ordningen lite efter att man har saknat IntelliSense i vanlig JavaScript.

I StackOverflows enkät 2016 kom TypeScript etta som svar på frågan “vilken teknologi skulle du helst vilja använda?”. Det är anmärkningsvärt för ett språk att ha klättrat upp till första plats på bara några år. Det visar lite på att det finns ett verkligt behov av TypeScript; att man ser värdet.

Okej, men vad är haken? Varför använder inte alla TypeScript? Finns det inga nackdelar?

Anders Hejlsberg (skapare av TypeScript) fick den frågan i en podcast en gång. Hans svar var “TypeScript är en värdeproposition som det inte är rationellt att tacka nej till”. Du kan skriva samma JavaScript-kod som du gjorde förut, men du får tidiga varningar om saker som kan gå fel eller kommer att gå fel, eller bara är riskabla eller problematiska på något sätt.

I realiteten tas ett beslut som “byt till TypeScript” alltid i en kontext. Man har existerande JavaScript-kod, externa beroenden, etc. Även i ett sådant läge finns det dock goda möjligheter att överväga TypeScript. Ett existerande projekt kan till exempel välja att migrera källfil för källfil; TypeScript är smidigt nog att hantera en kodbas med en mix av JavaScript- och TypeScript-kod. Man väljer även själv med olika konfigureringsflaggor hur strikt man vill att TypeScript ska vara med ens kod. Där kan man göra en avvägning mellan striktare/bättre typkontroller å ena sidan, och enklare migrering å andra sidan.

Jag har hört att man ska använda Flow istället. Är det sant?

Flow är ett intressant alternativ med ungefär samma säljpunkter som TypeScript. (Flow är utvecklat av Facebook och TypeScript av Microsoft. Båda är öppen källkod.) Vid det här laget är det dock ganska tydligt att TypeScript har “vunnit” i den bemärkelsen att det har en stor community och massor av understöd från alla håll. Lite liknande situationen med Git och Mercurial; det senare är ett fullgott alternativ, men det har en betydligt mindre marknadsandel.

Du har gjort en kurs för folk som vill veta mer om TypeScript?

Ja! I kursen kan man se tydligt hur JavaScript har vuxit upp, och hur man kan kombinera det bästa av TypeScript, moderna verktyg, testdriven utveckling, och moderna utvecklingsmetoder för att bygga icke-trivial mjukvara för browsern och för Node.js.

0 kommentarer