Alla som använder JavaScript-ekosystemet känner numera till Typescript. Typescript är en av de mest älskade teknikerna* och dess användning ökar ständigt (användningsandelen ökade från 52% 2018 till 78% 2020)*.
Typescripts nuvarande position kom inte från ingenstans eftersom den tekniken verkligen kan förbättra vår utvecklarupplevelse. Mer explicit kodning ökar kontrollen och förutsägbarheten av kod. I den här artikeln ska jag försöka övertyga dig om att använda Typescript.
När du utvecklar en applikation i en JavaScriptkan ditt flöde se ut så här:
Gör en förändring,
Gå till appen och kolla in den ändrade delen / Kör (relaterade) tester.
Ta reda på om allt är ok.
Med Typescript kan du faktiskt göra ändringen och om det finns någon Typfel i din kod, kommer du att veta det omedelbart tack vare kompilatorns felmeddelande eller IDE:s realtidsfeedback. Typescript-kompilatorn kommer naturligtvis inte att lösa alla problem och inte heller varna för alla buggar, men dess hjälp kan vara ovärderlig.
Bättre syntaxkomplettering i IDE:er
Det är verkligen enkelt. Om du använder bra IDE:er, som WebStorm eller VSCode, kommer du att få bättre syntaxkomplettering med Typescript. Det kanske inte låter som en enorm förbättring av utvecklarupplevelsen, men i slutändan är varje enskild förbättring viktig eftersom den kan spara oss lite tid och, återigen, förhindra ett skrivfel eller ett misstag. Vi kan också definiera vår typ eller vårt gränssnitt en gång; eftersom vi inte alltid behöver komma ihåg strukturen kan vi fokusera på att skriva affärslogik.
Mindre smärtsam refaktorisering
Tänk dig att du av någon anledning måste göra en refaktorisering, till exempel att du har gått med i en projekt och du får i uppdrag att lägga till en ny funktion, men den funktionen är på något sätt kopplad till äldre kod. Typescript kan göra det enklare och mindre smärtsamt, för när du gör en ändring och det finns ett annat ställe där du måste göra en annan ändring, kommer kompilatorn att varna dig för det.
Det kan till exempel vara en förändrad funktionssignatur eller kanske efter förändringen, en funktionen kommer att returnera något helt annat, så även den returnerade typen kommer att skilja sig åt.
Bli mer säker på kodbasen
JavaScript är svagt och dynamiskt typad, så när du initialiserar en variabel med värdet låt fråga = '' senare i koden kan utvecklaren av misstag göra något irrationellt, t.ex. fråga = santoch det kommer att vara en giltig JS-kod.
I en välskriven kod ska det inte hända att man tilldelar ett booleskt värde till en variabel som tidigare var en sträng. Så vanligtvis beror den tilldelningen med typändring på ett misstag.
När vi använder Typescript kan vi inte ändra variabelns typ, så om vi gör variabeln låt fråga = '' variabel, kommer den att vara sträng typ och vi kommer inte att kunna ändra dess typ av misstag.
Om vi vill låta en variabel vara av mer än en typ gör vi det alltid explicit med hjälp av unionstyp, t.ex. sträng | tal.
Typescript gör därför vår kod mer förutsägbar och tydlig. Typescript tar också hand om explicitet i kontrollflödesanalysen och om det finns en möjlighet att något kan gå fel kommer det att varna dig.
Här i exempel i första om block kommer vi att få fel:
TS2339: Egenskapen 'battery' finns inte på typen 'ClothingProduct' 2 gånger, för batteri, och ram egenskaper.
I det andra blocket - annatkommer vi att få det felet för storlek egendom. Naturligtvis är det bara ett exempel för att visa dig hur diskriminerade fackföreningar och analys av kontrollflöde arbetar i Typescript, så vi gör inte något alltför komplext med den koden.
Enkel, progressiv migrering från JavaScript
Giltig JavaScript-kod är samtidigt giltig Typescript-kod, så att du kan migrera din kodbas steg för steg. Vanligtvis är det bra att använda strikt läge i Typescript, men i det här fallet, måste vi börja med "strikt": falsk i tsconfig.json och vi bör också ställa in ytterligare 2 alternativ.
"allowJs": true, // det gör att vi kan använda .js-filer och typen kommer inte att kontrolleras i dem
"skipLibCheck": true // det kommer att hoppa över att kontrollera typer i bibliotek som vi använder
Med dessa alternativ kan vi migrera från JS till TS steg för steg - fil för fil, genom att helt enkelt ändra tillägget från .js(x) till .ts(x) och lägga till typer i filerna. Med den här metoden kan vi undvika hundratals eller tusentals läskiga kompileringsfel.
Sammanfattning
Jag tycker att vi ska använda Typsnitt så ofta som möjligteftersom det verkligen är fördelaktigt på lång sikt. Det hjälper till att underhålla projekt, ökar utvecklarnas erfarenhet och gör vår kodbas mer tydlig och tillförlitlig.
Men som alltid finns det undantag - till exempel för en enkel landningssida där JavaScript endast används för att växla klass eller ett annat enkelt fall, Typescript är inte meningsfullt. Vi måste också komma ihåg att för att dra full nytta av Typescript måste vi lära oss att använda det på en tillräcklig nivå, och det kan ta lite tid. Jag tror att det fortfarande är en mycket lönsam investering av din tid.