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 –
import
jaexport
- Standardisoidut lupaukset
- Luokat & Perinnöllisyys
- Block-scoped variables –
let
jaconst
- Template Literals
- Objektien tuhoutuminen muuttujiksi
- Generator-funktiot
- Map- ja Set-tietorakenteet
- Internationalisointi merkkijonoille, Numbers and Dates via
Intl
API
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)