Visi, kurie naudojasi JavaScript ekosistema, šiandien žino apie Typescript. Typescript yra viena mėgstamiausių technologijų*, o jos naudojimas nuolat auga (naudojimo dalis padidėjo nuo 52% 2018 m. iki 78% 2020 m.)*.
Dabartinė padėtis Mašinraštis neatsirado iš niekur, nes ši technologija gali iš tiesų pagerinti mūsų kūrėjų patirtį. Aiškesnis kodavimas padidina kontrolę ir nuspėjamumą kodas. Šiame straipsnyje bandysiu jus įtikinti naudoti Typescript.
Paprastai, kai kuriate programą JavaScript, jūsų srautas gali atrodo taip:
Pakeiskite situaciją,
Eikite į programėlę ir patikrinkite pakeistą dalį / Atlikti (susijusius) bandymus.
Sužinokite, ar viskas gerai.
Naudodami "Typescript" galite iš tikrųjų atlikti pakeitimą ir, jei yra kokių nors tipo klaida kode, iš karto sužinosite apie tai, gavę kompiliatoriaus klaidos pranešimą arba IDE grįžtamąjį ryšį realiuoju laiku. Žinoma, "Typescript" kompiliatorius neišspręs visų problemų ir neįspės apie visas jūsų klaidas, tačiau jo pagalba gali būti neįkainojama.
Geresnis sintaksės užbaigimas IDE
Tai labai paprasta. Jei naudojate geras IDE, pvz., "WebStorm" ar VSCode, gausite geresnis sintaksės užbaigimas naudojant Typescript. Galbūt tai neskamba kaip didžiulis kūrėjo patirties pagerinimas, tačiau galiausiai kiekvienas patobulinimas yra svarbus, nes gali padėti sutaupyti mus tam tikrą laiką ir vėlgi išvengti rašybos klaidos ar klaidos. Be to, tipą ar sąsają galime apibrėžti vieną kartą; kadangi nereikia nuolat prisiminti struktūros, galime susitelkti į verslo logikos rašymą.
Mažiau skausmingas pertvarkymas
Įsivaizduokite, kad dėl kokios nors priežasties turite atlikti refaktorizaciją, pvz., prisijungėte prie projektas ir gaunate užduotį pridėti naują funkciją, tačiau ši funkcija yra kažkaip susijusi su senesniu kodu. Typescriptas gali palengvinti ir padaryti tai ne taip skausminga, nes kai atliksite pakeitimą ir atsiras kita vieta, kurioje turėsite atlikti kitą pakeitimą, kompiliatorius jus apie tai įspės.
Pavyzdžiui, tai gali būti pakeista funkcijos signatūra, o galbūt po pakeitimo funkcija grąžins visiškai kitokį tipą, todėl skirsis ir grąžinamas tipas.
Būkite tikresni dėl kodų bazės
JavaScript yra silpnai ir dinamiškai tipizuotas, todėl, kai inicializuojate kintamąjį reikšme tegul užklausa = '' vėliau, kodo kūrimo metu, kūrėjas per klaidą gali padaryti ką nors neracionalaus, pvz. užklausa = true, ir jis bus galiojantis JS kodas.
Gerai parašytame kode neturėtų pasitaikyti, kad kintamajam, kuris anksčiau buvo eilutė, būtų priskirta loginė reikšmė. Taigi paprastai toks priskyrimas su tipo pakeitimu įvyksta dėl klaidos.
Naudodami Typescript, negalime keisti kintamojo tipo, todėl, jei kintamąjį tegul užklausa = '' kintamasis bus eilutė tipą ir negalėsime per klaidą pakeisti jo tipo.
Jei norime, kad kintamasis būtų daugiau nei vieno tipo, visada tai darome aiškiai naudodami union type, pvz. eilutė | skaičius.
Todėl "Typescript" padaro mūsų kodą labiau nuspėjamą ir aiškesnį. Be to, "Typescript" pasirūpins aiškia valdymo srauto analize ir, jei yra galimybė, kad kažkas gali būti negerai, įspės jus.
Čia pirmame pavyzdyje jei bloko gausime klaidą:
TS2339: tipo 'ClothingProduct' savybė 'battery' neegzistuoja' 2 kartus, už akumuliatorius, ir avinas savybės.
Antrajame bloke - kitaip, gausime šią klaidą dėl dydis nuosavybė. Žinoma, tai tik pavyzdys, rodantis, kaip diskriminuojamos profesinės sąjungos ir valdymo srauto analizė dirbti su Typescript, todėl su šiuo kodu nedarome nieko pernelyg sudėtingo.
Lengvas, laipsniškas perėjimas iš JavaScript
Galiojantis JavaScript kodas kartu yra ir galiojantis Typescript kodas, todėl galite žingsnis po žingsnio perkelti savo kodų bazę. Paprastai "Typescript" griežtojo režimo naudojimas yra gera praktika, tačiau šiuo atveju, turime pradėti nuo "strict": false svetainėje tsconfig.json taip pat turėtume nustatyti dar 2 parinktis.
"allowJs": true, // tai leis mums naudoti .js failus, o tipas juose nebus tikrinamas
"skipLibCheck": true // bus praleistas tipų tikrinimas mūsų naudojamose bibliotekose
Naudodamiesi šiomis parinktimis galime žingsnis po žingsnio pereiti iš JS į TS - failas po failo, tiesiog pakeisdami plėtinį iš .js(x) į .ts(x) ir į failus įtraukti tipus. Taikydami šį metodą galime išvengti šimtų ar tūkstančių bauginančių kompiliavimo klaidų.
Santrauka
Manau, kad turėtume naudoti Mašinraštis taip dažnai, kaip galima, nes tai tikrai naudinga ilgalaikėje perspektyvoje. Tai padeda prižiūrėti projektus, didina programuotojų patirtį, o mūsų kodų bazė tampa aiškesnė ir patikimesnė.
Tačiau, kaip ir visada, yra išimčių, pvz., paprastas nukreipimo puslapis kai JavaScript naudojamas tik klasei perjungti arba kitu paprastu atveju, Typescript neturi prasmės. Be to, turime nepamiršti, kad norėdami visapusiškai išnaudoti "Typescript" privalumus, turime išmokti juo naudotis pakankamu lygiu, o tai gali užtrukti. Manau, kad tai vis tiek labai naudinga laiko investicija.