angularjs - Pitäisikö minun käyttää typescriptiä? Vai voinko vain käyttää ES6:ta?


Päivittäinen työni on asiakassovelluskehittäjä käyttäen AngularJS:ää. Arvioimme, haluammeko käyttää TypeScriptiä. Tein tutkimusta TypeScriptistä ja lähes jokaisella JavaScript-paketilla, jota tarvitsen, täytyy olla tyyppitiedostot. Huomasin, että se ei ole kovin kätevää, erityisesti jos haluaisin kokeilla jotain uutta eikä tiedostoja ole saatavilla. Se on todella turhauttavaa. (Jopa nykyinen jQueryn määritelmä aiheuttaa minulle joitakin ongelmia, jos haluan käyttää TypeScript 1.5 betaa). Aloin tutkia ES6:ta ja se näyttää samankaltaiselta kuin TypeScript. Pitäisikö minun vain käyttää ES6:ta sen sijaan? Myös kuulin, että Angular 2:lla tulee olemaan täydellinen tuki TypeScriptille, olisiko se yksi syy, miksi minun pitäisi pysyä sen parissa?

Vastaus #1

Päätöspuu ES5:n, ES6:n ja TypeScriptin välillä

Häiritseekö sinua, että on rakennusvaihe?

  • Kyllä - Käytä ES5
  • Ei - jatka

Haluatko käyttää tyyppejä?

  • Kyllä - Käytä TypeScriptiä
  • Ei - Käytä ES6:ta

Lisätietoja

ES5 on JavaScript, jonka tunnet ja käytät selaimessa nykyään; se on sellainen kuin se on, eikä sen ajamiseksi nykypäivän selaimissa tarvita rakennusvaihetta muunnettaessa sitä johonkin suoritettavaan muotoon

ES6 (tunnetaan myös nimellä ES2015) on seuraava JavaScriptin versio, mutta se ei toimi tämän päivän selaimissa. On olemassa useita transpiloijia, jotka vievät ES5:n suoritettavaksi selaimissa. Se on yhä dynaaminen (lue: tyyppäätön) kieli.

TypeScript tarjoaa valinnaisen tyyppijärjestelmän samalla kun se ottaa käyttöön ominaisuuksia tulevista JavaScriptin versioista (ES6 ja ES7).

Huomautus: monet siellä olevista käännösohjelmista (esim. Babel, TypeScript) sallivat sinun käyttää tulevien JavaScript-versioiden ominaisuuksia jo tänään ja viedä koodia, joka toimii edelleen tämän päivän selaimissa.

Vastaus #2

Olen käyttänyt Typescriptia nykyisessä Angular-projektissani noin vuoden ja puolen ajan, ja vaikka ajoittain onkin joitakin ongelmia määritelmien kanssa, DefinitelyTyped-projekti tekee uskomatonta työtä pysyäkseen ajan tasalla useimpien suosittujen kirjastojen uusimpien versioiden kanssa.

Tästä huolimatta on selkeä oppimiskäyrä siirryttäessä tavallisesta JavaScriptistä TypeScriptiin, ja sinun tulisi ottaa huomioon sinun ja tiimisi kyky tehdä tämä siirtymä. Lisäksi, jos aiot käyttää Angular 1.x:ää, suurin osa verkosta löytyvistä esimerkeistä vaatii niiden kääntämistä JavaScriptistä TypeScriptiin, ja yleisesti ottaen TS:n ja Angular 1.x:n käyttämiseen yhdessä ei tällä hetkellä ole paljon resursseja.

Jos aiot käyttää Angular 2:ta, on paljon esimerkkejä, joissa käytetään TS:ää, ja mielestäni tiimi jatkaa suurimman osan dokumentaation tarjoamista TS:llä, mutta sinun ei tietenkään tarvitse käyttää TS:ää käyttäessäsi Angular 2:ta.

ES6:lla on joitakin mukavia ominaisuuksia, ja henkilökohtaisesti aion tutustua siihen paremmin, mutta en tällä hetkellä pitäisi sitä tuotantovalmiina kielenä. Pääasiassa nykyisten selainten tuen puutteen vuoksi. Tietenkin voit kirjoittaa koodisi ES6:ssa ja käyttää transpilointiohjelmaa muuntaaksesi sen ES5:ksi, mikä näyttää olevan suosittu tapa tehdä tällä hetkellä.

Kaiken kaikkiaan mielestäni vastaus riippuisi siitä, mitä sinä ja tiimisi olette valmiita oppimaan. Minun henkilökohtainen mielipiteeni on, että sekä TS:llä että ES6:lla on hyvä tuki ja pitkät tulevaisuudet, mutta minä suosin TS:ää, koska siinä saat kieliominaisuuksia nopeammin ja tällä hetkellä työkalujen tuki (oman mielipiteeni mukaan) on hieman parempi.

Aiheeseen liittyviä artikkeleita