JavaScripti keelde pakutakse lisada süntaks tüüpide kohta.

Microsoft, Igalia ja Bloomberg esitasid algatuse, et lisada JavaScripti spetsifikatsiooni süntaks, mis võimaldab tüüpide selget määratlemist, sarnanedes TypeScripti keeles kasutatavale süntaksile. Praegu on ECMAScripti standardisse lisamiseks ettepanekute prototüüp esialgseteks aruteludeks (Stage 0). TC39 komitee lähimas märtsikuu koosolekus plaanitakse liikuda ettepaneku arutamise esimesse etappi, kaasates ekspertide kogukonda ECMA-st.

Tüüpide kohta selge info olemasolu aitab vältida arendamise käigus paljusid vigu, võimaldab kasutada lisainterventioni optimeerimise tehnikaid, lihtsustab tõrkeotsingut ning muudab koodi loetavamaks ja muudatustega hõlpsamini hallatavaks kolmandate osapoolte arendajate poolt. Tüüpide tugi pakutakse rakendada valikulisena — JavaScripti mootorid ja runtime'id, mis ei toeta tüübikontrolli, ignoreerivad tüüpide info annotatsioone ja töötlevad koodi nagu varem, käsitledes tüübiteavet kui kommentaare. Kuid tüüpide kontrollimise tööriistad saavad sellel põhjal olemasoleva info põhjal tuvastada tüüpide vale kasutamisega seotud vead.

Erinevalt JSDoci annotatsioonide kaudu määratletud tüüpide teabest, mis esitatakse kommentaaride vormis, muudab muutujate määratlemise struktuurides tüüpide otsene määramine koodi selgemaks, arusaadavamaks ja lihtsamaks muudetavaks. Näiteks saavad TypeScript'i toe pakkavad integreeritud arenduskeskkonnad koheselt tuvastada vigu tüübitud JavaScript-koodis ilma täiendavate ümberprotsessimisteta. Pealegi võimaldab tüüpide sisseehitatud tugi käivitada programme, mis on kirjutatud tüübitud JavaScripti dialektides, nagu TypeScript ja Flow, ilma ühelt keelelt teisele transpileerimata.

JavaScripti keelde pakutakse lisada süntaks tüüpide kohta.

Из типов предлагается добавить «string», «number» и «boolean», которые можно будет использовать при определении переменных, параметров функций, элементов объектов, полей классов, типизированных массивов («number[]»). Предлагается также обеспечить поддержку объединённых типов («string | number») и дженериков. let x: string; function add(a: number, b: number) { return a + b; } interface Person { name: string; age: number; } function foo<T>(x: T) { return x; } function foo(x: string | number): string | number { if (typeof x === number) { return x + 1 } else { return x + «!» } }

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster