Alle, der bruger JavaScript-økosystemet, er i dag opmærksomme på Typescript. Typescript er en af de mest elskede teknologier*, og brugen af den stiger konstant (andelen af brugere steg fra 52% i 2018 til 78% i 2020)*.
Typescripts nuværende position kom ikke ud af ingenting, da denne teknologi virkelig er i stand til at forbedre vores udvikleroplevelse. Mere eksplicit kodning øger kontrollen og forudsigeligheden af Kode. I denne artikel vil jeg forsøge at overbevise dig om at bruge Typescript.
Normalt, når du udvikler en applikation i JavaScriptkan dit flow måske se sådan her ud:
Lav en forandring,
Gå til appen, og tjek den ændrede del / Kør (relaterede) tests.
Find ud af, om alt er i orden.
Med Typescript kan du faktisk foretage ændringen, og hvis der er nogen Typefejl i din kode, vil du vide det med det samme takket være compilerens fejlmeddelelse eller IDE's feedback i realtid. Typescript-compileren løser selvfølgelig ikke alle problemer og advarer ikke om alle fejl, men dens hjælp kan være uvurderlig.
Bedre syntaksfuldførelse i IDE'er
Det er meget enkelt. Hvis du bruger gode IDE'er som WebStorm eller VSCode, vil du få bedre syntaksafslutning med Typescript. Måske lyder det ikke som en stor forbedring af udvikleroplevelsen, men i sidste ende betyder hver eneste forbedring noget, da den kan spare os for tid og igen forhindre en tastefejl eller en fejl. Vi kan også definere vores type eller interface én gang; da vi ikke altid behøver at huske strukturen, kan vi fokusere på at skrive forretningslogik.
Mindre smertefuld refaktorering
Forestil dig, at du er nødt til at refaktorere af en eller anden grund, for eksempel har du sluttet dig til en projekt og du får til opgave at tilføje en ny funktion, men den funktion er på en eller anden måde forbundet med ældre kode. Typescript kan gøre det lettere og mindre smertefuldt, for når du foretager en ændring, og der er et andet sted, hvor du skal foretage en anden ændring, vil compileren advare dig om det.
Det kan f.eks. være en ændret funktionssignatur eller måske efter ændringen en funktion vil returnere noget helt andet, så også den returnerede type vil være forskellig.
Vær mere sikker på kodebasen
JavaScript er svagt og dynamisk typet, så når du initialiserer en variabel med værdien lad forespørgsel = '' Senere i koden kan udvikleren komme til at gøre noget irrationelt ved en fejl, f.eks. forespørgsel = true, og det vil være gyldig JS-kode.
I en velskrevet kode burde det ikke ske, at man tildeler en boolsk værdi til en variabel, der tidligere var en streng. Så normalt skyldes denne tildeling med typeændring en fejl.
Når vi bruger Typescript, kan vi ikke ændre typen af variablen, så hvis vi laver lad forespørgsel = '' variabel, vil det være streng og vi vil ikke kunne ændre dens type ved en fejl.
Hvis vi vil lade en variabel være mere end én type, gør vi det altid eksplicit ved at bruge union type, for eksempel streng | tal.
Derfor gør Typescript vores kode mere forudsigelig og eksplicit. Typescript tager sig også af eksplicitering i kontrolstrømsanalysen, og hvis der er mulighed for, at noget kan gå galt, vil den advare dig.
Her i eksempel i første hvis blok får vi en fejl:
TS2339: Egenskaben 'batteri' findes ikke på typen 'ClothingProduct'. 2 gange, for Batteriog Vædder egenskaber.
I anden blok - ellersfår vi den fejl for størrelse ejendom. Det er selvfølgelig kun et eksempel for at vise dig, hvordan diskriminerede fagforeninger og Analyse af kontrolflow arbejder i Typescript, så vi gør ikke noget alt for komplekst med den kode.
Nem, progressiv migration fra JavaScript
Gyldig JavaScript-kode er samtidig gyldig Typescript-kode, så du kan migrere din kodebase trin for trin. Normalt er det god praksis at bruge strict mode i Typescript, men i dette tilfælde, Vi er nødt til at starte med "strict": falsk i tsconfig.json og vi bør også indstille yderligere 2 muligheder.
"allowJs": true, // det giver os mulighed for at bruge .js-filer, og typen vil ikke blive kontrolleret i dem
"skipLibCheck": true // det vil springe kontrol af typer i biblioteker, som vi bruger, over
Med disse muligheder kan vi migrere fra JS til TS trin for trin - fil for fil, blot ved at ændre udvidelsen fra .js(x) til .ts(x) og tilføje typer i filerne. Med denne tilgang kan vi undgå hundredvis eller tusindvis af skræmmende kompileringsfejl.
Sammenfatning
Jeg synes, vi skal bruge Manuskript så ofte som muligtfordi det virkelig er gavnligt på lang sigt. Det hjælper med at vedligeholde projekter, øger udviklernes erfaring og gør vores kodebase mere eksplicit og pålidelig.
Men som altid er der undtagelser - for eksempel for en simpel landingsside hvor JavaScript kun bruges til at skifte klasse eller et andet simpelt tilfælde, giver Typescript ingen mening. Vi skal også huske, at for at få fuldt udbytte af Typescript skal vi lære at bruge det på et tilstrækkeligt niveau, og det kan tage noget tid. Jeg tror stadig, at det er en meget rentabel investering af din tid.