Aloitin siis uuden TypeScript-projektin ja mietin, mihin JavaScript / ECMA Script -versioon pitäisi tähdätä. Tällä hetkellä voimme valita ES5:n, ES2015:n, ES2016:n, ES2017:n ja ES2018:n väliltä!
Kaksi tärkeintä asiaa, jotka kannattaa ottaa huomioon JavaScriptin kohdeversiota valittaessa, ovat:
- Kohdeympäristö – Työpöytäselain? Mobile? NodeJS?
- Mitä JS-ominaisuuksia tarvitsen – Luokat? Moduulit? Async Functions?
Olemme onneksi Evergreen-selaimen aikakaudella, joten tuki uusimmille ominaisuuksille on erittäin hyvä useimmissa ympäristöissä, mutta aina on kuitenkin tilanteita, joissa käyttäjillä on vanhempia laitteita tai olet jumissa vanhemmassa NodeJS-versiossa.
Yleinen suositukseni tästä syystä on kohdistaa vanhimpaan versioon, jossa on tarvitsemasi ominaisuudet. Näin saat hyvän tasapainon laajan kohdeympäristötuen ja mahtavien uusien ominaisuuksien saatavuuden välille 🙂
Alhaalla olen tehnyt yhteenvedon siitä, mitä näen tärkeimpinä uusina ominaisuuksina, jotka on julkaistu kussakin ECMA Script -versiossa. Kattavan luettelon sekä täydelliset tiedot kohdeympäristötuesta saat Kangaxin mahtavasta yhteensopivuustaulukosta.
ES5 (2009)
- Tämä on JS:n perusversio, jonka voi yleensä olettaa tukevan kaikkia ajo-ohjelmia (paitsi todella vanhoja!).
ES6 / ES2015
- Standardimoduulit –
importjaexport - Standardisoidut lupaukset
- Luokat & Perinnöllisyys
- Block-scoped variables –
letjaconst - Template Literals
- Objektien tuhoutuminen muuttujiksi
- Generator-funktiot
- Map- ja Set-tietorakenteet
- Internationalisointi merkkijonoille, Numbers and Dates via
IntlAPI
ES7 / ES2016
- Array.includes()
- Numeerinen eksponentti (potenssi) -operaattori
**
ES8 / ES2017
- Async-funktiot
- Object.entries
- String padding functions
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props }; - Asynkroninen iterointi
for await (...) { - Promise
finally()function - Regulaaristen lausekkeiden parannukset (lookbehind, nimetyt ryhmät)