12 aug 2017

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

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.

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.

Fler artiklar

  • Var med och påverka!

    Vi har nu ännu fler kurser i vårt utbud och vill kunna erbjuda de på schema under hösten. Men vi behöver din hjälp! Vilka av dessa 6 kurser vill du gå? Anmäl ditt intresse så tar vi fram datum.

    Läs mer
  • En saga om React

    En saga om hur vi skrev en saga (läs: Storybook) om React!

    Läs mer
  • Kursuppdatering: .NET Core 3.x och C# 8

    I slutet av september släpps .NET Core 3.0 och C# 8, självklart håller vi våra kurser uppdaterade därefter.

    Läs mer
  • Edumentare talar om Angular och frestelsen med programmering

    David Waller och Stephen Lau är två av talarna på Day of the Programmer. 

    Läs mer
  • Höstens kursnyheter - SQL och Power BI

    Är du ny inom SQL eller vill du fördjupa dina kunskaper i Power BI? Oavsett har vi nu kursen för dig! 

    Läs mer