Lagt er til að bæta setningafræði með tegundarupplýsingum við JavaScript tungumálið

Microsoft, Igalia og Bloomberg hafa tekið frumkvæði að því að setja setningafræði í JavaScript forskriftina fyrir skýrar gerðarskilgreiningar, svipað og setningafræði sem notuð er í TypeScript tungumálinu. Eins og er, eru frumgerðarbreytingarnar sem lagðar eru til að taka með í ECMAScript staðlinum lagðar fram til bráðabirgðaumræðna (stig 0). Á næsta fundi TC39 nefndarinnar í mars er fyrirhugað að fara á fyrsta stig umfjöllunar tillögunnar með aðkomu sérfræðingasamfélagsins frá ECMA.

Að hafa beinlínis tilgreindar tegundarupplýsingar mun leyfa þér að forðast margar villur meðan á þróunarferlinu stendur, gera það mögulegt að nota viðbótar fínstillingartækni, einfalda villuleit og gera kóðann læsilegri og auðveldari fyrir breytingar og stuðning þriðja aðila þróunaraðila. Lagt er til að tegundastuðningur verði innleiddur sem valfrjáls eiginleiki - JavaScript vélar og keyrslutímar sem styðja ekki tegundathugun munu hunsa athugasemdir með tegundarupplýsingum og vinna úr kóðanum eins og áður, meðhöndla tegundargögn sem athugasemdir. En tegundaskoðunartæki munu geta notað tiltækar upplýsingar til að bera kennsl á villur sem tengjast rangri notkun tegunda.

Þar að auki, öfugt við tegundaupplýsingar sem tilgreindar eru með því að nota JSDoc athugasemdir sem tilgreindar eru í formi athugasemda, mun bein vísbending um gerðir beint í breytilegum skilgreiningum gera kóðann sjónrænni, skiljanlegri og auðveldari að breyta. Til dæmis, IDE með TypeScript stuðningi geta strax auðkennt villur í vélrituðum JavaScript kóða án frekari umbreytinga. Að auki mun innbyggður tegundarstuðningur gera það mögulegt að keyra forrit sem eru skrifuð á vélrituðum JavaScript mállýskum, eins og TypeScript og Flow, án þess að flytja úr einu tungumáli yfir á annað.

Lagt er til að bæta setningafræði með tegundarupplýsingum við JavaScript tungumálið

Meðal tegunda er lagt til að bætt verði við „streng“, „tala“ og „boolean“ sem hægt er að nota við skilgreiningu á breytum, fallbreytum, hlutþáttum, flokkareiti, vélrituðum fylkjum („tala[]“). Einnig er lagt til að veita stuðning við sameinaðar tegundir („streng | tala“) og almennar gerðir. láta x: strengur; fall add(a: tala, b: tala) { skila a + b; } tengi Persóna { nafn: strengur; aldur:tala; } virka foo (x: T) { skila x; } fall foo(x: strengur | tala): strengur | tala { if (tegund x === tala) { skila x + 1 } annað { skila x + "!" } }

Heimild: opennet.ru

Bæta við athugasemd