By: Alexandra Onegård
2020-09-29
TypeScript vs JavaScript
Jag kom i kontakt med TypeScript för första gången för cirka ett år sedan när jag började mitt senaste uppdrag ute hos kund. Innan jag började med TypeScript så tyckte jag att det bästa med JavaScript var att man kan använda en och samma variabel till att först returnera en sträng, för att i nästa stund returnera en div-tag. Detta fungerar bra när man gör det med flit, men det kan lätt bli att man missar misstag man gör eftersom JavaScript inte flaggar upp det. Det är där TypeScript kommer in. TypeScript fångar upp alla dessa misstag och flaggar dem som fel.
Så, vad är TypeScript egentligen?
– Ett superset av JavaScript, dvs bygger på JavaScript men omfattar även mer. Alla JavaScript program är giltig TypeScript program.- Förutom vanlig JavaScript kod kan man lägga till typ-annoteringar och deklarera variabler som ”string”, ”number”, ”boolean” etc.- Statisk typdeklarerat jämfört med JavaScript som är dynamiskt typdeklarerat. Statisk typdeklaration innebär att typkontroll utförs vid kompilering istället för att utföras vid exekvering som det gör för dynamisk typdeklaration. – Skapat av Microsoft för att användas när man utvecklar större komplexa applikationer både för klient- och serversida. – Kompileras ner till JavaScript-kod och fungerar därför på alla ställen där JavaScript fungerar.
Fördelar med TypeScript?
– Fångar upp misstag som man lätt missar eftersom JavaScript struntar i det. Det är t.ex. tillåtet att anropa en funktion med färre/fler argument än tänkt i JavaScript. Det är även tillåtet att skriva kod som inte går att nå i programmet. TypeScript fångar upp allt detta och flaggar dem som fel.- Högre kvalitet på koden eftersom felen upptäcks när koden kompileras. Det innebär att din IDE kan påpeka fel i din kod så fort du skriver dem.- OOP-funktionalitet(objekt orienterad programmering) som t.ex. typning, interfaces, enum. Det gör att folk som kommer från backendhållet kan känna igen sig mer och ha lättare att sätta sig in i språket.
Nackdelar med TypeScript?
– Mer kod att skriva som kan leda till att utvecklingen går långsammare. – Lägger till ett extra steg – måste kompileras till JavaScript innan det kan köras.- Högre inlärningskurva eftersom alla måste lära sig ett nytt programmeringsspråk.- Onödigt komplext i mindre applikationer – man kan ibland fastna på själva typningen istället för att fokusera på lösandet av programmeringsproblemet. – Alla paket man vill använda i ett projekt har inte typning än.
Nu när jag har använt TypeScript i snart ett år så tycker jag att det är bra att man måste ha typning för att undvika onödiga fel. TypeScript hjälper till att snabbare hitta fel och gör att koden har högre kvalité. Eftersom alla JavaScript program också är giltig TypeScript program och man kan ha olika strikta regler på sin TypeScript så kan man byta ut en fil åt gången i ett projekt.
Jag skulle därför rekommendera alla som gillar JavaScript att kika på TypeScript!