Miksi sinun pitäisi (luultavasti) käyttää Typescriptiä?
Dominik Grzedzielski
Vanhempi Software Engineer
Kaikki, jotka käyttävät JavaScript-ekosysteemiä, ovat nykyään tietoisia Typescriptistä. Typescript on yksi rakastetuimmista teknologioista*, ja sen käyttö kasvaa jatkuvasti (käyttöosuus kasvoi 52%:stä vuonna 2018 78%:hen vuonna 2020)*.
Typescriptin nykyinen asema ei tullut tyhjästä, sillä kyseinen teknologia pystyy todella parantamaan kehittäjäkokemusta. Selkeämpi koodaus lisää kontrollia ja ennustettavuutta. koodi. Tässä artikkelissa yritän vakuuttaa sinut Typescriptin käytöstä.
Yleensä, kun sovellusta kehitetään vuonna JavaScript, virtauksesi saattaa näyttää tältä:
Tee muutos,
Siirry sovellukseen ja tarkista muuttunut osa / Suorita (liittyvät) testit.
Ota selvää, onko kaikki kunnossa.
Typescriptin avulla voit itse asiassa tehdä muutoksen, ja jos on jotain tyyppivirhe koodissasi, tiedät siitä välittömästi kääntäjän virheilmoituksen tai IDE:n reaaliaikaisen palautteen ansiosta. Typescript-kääntäjä ei tietenkään ratkaise kaikkia ongelmia eikä varoita kaikista virheistäsi, mutta sen apu voi olla korvaamatonta.
Parempi syntaksin täydentäminen IDE-ohjelmissa
Se on todella yksinkertaista. Jos käytät hyviä IDE-ohjelmia, kuten WebStormia tai VSCodea, saat seuraavanlaisia tuloksia parempi syntaksin täydentäminen Typescriptin kanssa. Ehkä se ei kuulosta valtavilta parannuksilta kehittäjäkokemuksen kannalta, mutta loppujen lopuksi jokaisella parannuksella on merkitystä, sillä se voi säästää aikaa ja estää kirjoitusvirheiden tai virheiden syntymisen. Lisäksi voimme määritellä tyypin tai rajapinnan kerran; kun meidän ei tarvitse aina muistaa rakennetta, voimme keskittyä liiketoimintalogiikan kirjoittamiseen.
Vähemmän tuskallista refaktorointia
Kuvittele, että sinun on refaktoroitava jostain syystä, esimerkiksi, että olet liittynyt yhteen projekti ja saat tehtäväksi lisätä uuden ominaisuuden, mutta tämä ominaisuus liittyy jotenkin vanhaan koodiin. Typescript voi tehdä siitä helpompaa ja vähemmän tuskallista, sillä kun teet muutoksen ja joudut tekemään toisen muutoksen toisessa kohdassa, kääntäjä varoittaa sinua siitä.
Esimerkiksi - se voi olla muuttunut funktiosignatuuri tai ehkä muutoksen jälkeen, a funktio palauttaa jotain täysin erilaista, joten myös palautettu tyyppi on erilainen.
Enemmän luottamusta koodipohjaan
JavaScript on heikosti ja dynaamisesti tyypitetty, joten kun alustat muuttujan arvolla let query = '' myöhemmin koodissa, kehittäjä voi vahingossa tehdä jotain järjetöntä, esimerkiksi query = true, ja siitä tulee kelvollinen JS-koodi.
Hyvin kirjoitetussa koodissa ei pitäisi tapahtua boolean-arvon antamista muuttujalle, joka oli aiemmin merkkijono. Joten yleensä tuo tyypinmuutoksen sisältävä osoitus johtuu virheestä.
Typescriptiä käytettäessä emme voi muuttaa muuttujan tyyppiä, joten jos teemme muuttujan tyypiksi let query = '' muuttuja, se on merkkijono tyyppiä, emmekä voi muuttaa sen tyyppiä vahingossa.
Jos haluamme antaa muuttujan olla useampaa kuin yhtä tyyppiä, teemme sen aina eksplisiittisesti käyttämällä union-tyyppiä, esimerkiksi seuraavasti merkkijono | numero.
Siksi Typescript tekee koodistamme ennustettavampaa ja selkeämpää. Typescript huolehtii myös kontrollivirran analyysin eksplisiittisyydestä, ja jos on mahdollista, että jokin menee pieleen, se varoittaa sinua.
Tässä esimerkissä ensimmäisessä jos lohko saamme virheen:
TS2339: Ominaisuutta 'battery' ei ole olemassa tyypissä 'ClothingProduct'. 2 kertaa, kun akkuja ram ominaisuudet.
Toisessa lohkossa - else, saamme tämän virheen koko omaisuus. Tietenkin se on vain esimerkki, joka osoittaa, miten... syrjityt liitot ja ohjausvirta-analyysi toimii Typescriptillä, joten emme tee mitään liian monimutkaista koodilla.
Helppo, asteittainen siirtyminen JavaScript:stä alkaen.
Kelvollinen JavaScript-koodi on samalla kelvollista Typescript-koodia, joten voit siirtää koodipohjaasi askel askeleelta. Yleensä Typescriptin strict-tilan käyttäminen on hyvä käytäntö, mutta tässä tapauksessa, meidän on aloitettava "strict": false osoitteessa tsconfig.json ja meidän pitäisi myös asettaa 2 muuta vaihtoehtoa.
"allowJs": true, // se sallii meidän käyttää .js-tiedostoja, eikä tyyppiä tarkisteta niissä.
"skipLibCheck": true // se ohittaa tyyppien tarkistamisen käyttämissämme kirjastoissa.
Näiden vaihtoehtojen avulla voimme siirtyä JS:stä TS:ään askel askeleelta - tiedosto kerrallaan, yksinkertaisesti vaihtamalla tiedostopäätteen muotoon .js(x) osoitteeseen .ts(x) ja lisäämällä tyyppejä tiedostoihin. Tätä lähestymistapaa käyttämällä voimme välttää satoja tai tuhansia pelottavia käännösvirheitä.
Yhteenveto
Mielestäni meidän pitäisi käyttää Kirjoituskäsikirjoitus niin usein kuin mahdollinen, koska se on todella hyödyllistä pitkällä aikavälillä. Se auttaa ylläpitämään projekteja, lisää kehittäjien kokemusta ja tekee koodipohjastamme selkeämmän ja luotettavamman.
Kuten aina, on kuitenkin olemassa poikkeuksia - esimerkiksi yksinkertaisen aloitussivun osalta. jossa JavaScript:tä käytetään vain luokan vaihtamiseen tai muussa yksinkertaisessa tapauksessa Typescript ei ole järkevää. On myös muistettava, että Typescriptin täysi hyödyntäminen edellyttää, että sitä opitaan käyttämään riittävällä tasolla, ja se voi viedä aikaa. Mielestäni se on silti erittäin kannattava sijoitus aikaa.