Javascript-kieleen ehdotetaan lisättäväksi syntaksi tyyppitiedoilla

Microsoft, Igalia ja Bloomberg ovat tehneet aloitteen sisällyttääkseen syntaksin JavaScript-spesifikaatioihin eksplisiittisille tyyppimäärittelyille, joka on samanlainen kuin TypeScript-kielessä käytetty syntaksi. Tällä hetkellä ECMAScript-standardiin ehdotetut prototyyppimuutokset on jätetty alustavaan keskusteluun (vaihe 0). TC39-komitean seuraavassa kokouksessa maaliskuussa on tarkoitus siirtyä ehdotuksen käsittelyn ensimmäiseen vaiheeseen ECMA:n asiantuntijayhteisön kanssa.

Selkeästi määritellyt tyyppitiedot auttavat sinua välttämään monia virheitä kehitysprosessin aikana, mahdollistavat lisäoptimointitekniikoiden käytön, yksinkertaistavat virheenkorjausta ja tekevät koodista helpommin luettavamman ja helpomman kolmannen osapuolen kehittäjien muokattavaksi ja tueksi. Tyyppitukea ehdotetaan otettavaksi käyttöön valinnaisena ominaisuutena - JavaScript-moottorit ja ajonajat, jotka eivät tue tyyppitarkistusta, jättävät huomioimatta tyyppitietoa sisältävät huomautukset ja käsittelevät koodin kuten ennenkin, käsittelevät tyyppitietoja kommentteina. Tyypintarkistustyökalut voivat kuitenkin käyttää saatavilla olevia tietoja tunnistaakseen tyyppien virheelliseen käyttöön liittyvät virheet.

Lisäksi, toisin kuin kommenttien muodossa määritetyillä JSDoc-merkinnöillä määritetyillä tyyppitiedoilla, tyyppien suora osoittaminen suoraan muuttujan määritelmäkonstrukteissa tekee koodista visuaalisemman, ymmärrettävämmän ja helpompi muokata. Esimerkiksi TypeScript-tuella varustetut IDE:t voivat välittömästi korostaa kirjoitetun JavaScript-koodin virheet ilman lisämuunnoksia. Lisäksi sisäänrakennettu tyyppituki mahdollistaa kirjoitetuilla JavaScript-murteilla kirjoitettujen ohjelmien, kuten TypeScriptin ja Flow'n, suorittamisen ilman siirtoa kielestä toiseen.

Javascript-kieleen ehdotetaan lisättäväksi syntaksi tyyppitiedoilla

Tyyppeihin ehdotetaan lisättäväksi "merkkijono", "numero" ja "boolean", joita voidaan käyttää määritettäessä muuttujia, funktioparametreja, objektielementtejä, luokkakenttiä, kirjoitettuja taulukoita ("number[]"). Lisäksi ehdotetaan tukea yhdistetyille tyypeille ("merkkijono | numero") ja geneerisille lääkkeille. anna x: merkkijono; funktio add(a: numero, b: numero) { return a + b; } käyttöliittymä Henkilö { nimi: merkkijono; ikä:numero; }-funktio foo (x: T) { paluu x; }-funktio foo(x: merkkijono | numero): merkkijono | numero { if (tyyppi x === numero) { return x + 1 } else { return x + "!" } }

Lähde: opennet.ru

Lisää kommentti