Motaren informazioa duen sintaxia gehitzea proposatzen da JavaScript hizkuntzara

Microsoft-ek, Igaliak eta Bloomberg-ek hartu dute sintaxia JavaScript zehaztapenean mota esplizituen definizioetarako sartzeko ekimena, TypeScript hizkuntzan erabiltzen den sintaxiaren antzera. Gaur egun, ECMAScript estandarrean sartzeko proposatutako prototipo-aldaketak aurretiazko eztabaidetarako bidaltzen dira (0. etapa). Martxoan TC39 batzordearen hurrengo bileran, proposamena aztertzeko lehen fasera pasatzea aurreikusten da ECMAko adituen komunitatearen inplikazioarekin.

Mota-informazioa esplizituki zehaztuta izateak garapen-prozesuan akats asko saihesteko aukera emango du, optimizazio-teknika osagarriak erabiltzeko aukera emango du, arazketa erraztu eta kodea irakurgarriagoa eta errazagoa izango da hirugarrenen garatzaileek aldatzeko eta babesteko. Motaren euskarria aukerako eginbide gisa inplementatzea proposatzen da. Mota egiaztapena onartzen ez duten JavaScript motorrek eta exekuzio-denborek motaren informazioa duten oharpenak baztertuko dituzte eta kodea lehen bezala prozesatuko dute, motaren datuak iruzkin gisa tratatuz. Baina motak egiaztatzeko tresnek erabilgarri dagoen informazioa erabili ahal izango dute motak gaizki erabiltzearekin lotutako akatsak identifikatzeko.

Gainera, iruzkin moduan zehaztutako JSDoc oharpenak erabiliz zehaztutako motaren informazioaren aldean, definizio aldakorreko konstruktuetan motak zuzenean adieraziz gero, kodea bisualagoa, ulergarriagoa eta editatzeko errazagoa izango da. Adibidez, TypeScript euskarria duten IDEek idatzitako JavaScript kodean akatsak berehala nabarmendu ahal izango dituzte bihurketa gehigarririk gabe. Horrez gain, motako euskarri integratuak aukera emango du idatzitako JavaScript dialektoetan idatzitako programak exekutatzeko, hala nola TypeScript eta Flow, hizkuntza batetik bestera transpilatu gabe.

Motaren informazioa duen sintaxia gehitzea proposatzen da JavaScript hizkuntzara

Moten artean, “katea”, “zenbakia” eta “boolearra” gehitzea proposatzen da, aldagaiak, funtzio-parametroak, objektu-elementuak, klase-eremuak, idatzitako matrizeak (“zenbakia[]”) definitzerakoan erabil daitezkeenak. Era berean, bateratutako motak (“katea | zenbakia”) eta generikoetarako laguntza ematea proposatzen da. utzi x: katea; function add(a: number, b: number) { return a + b; } interfazea Pertsona { name: string; adina:zenbakia; } funtzio foo (x: T) { itzuli x; } funtzioa foo(x: katea | zenbakia): katea | zenbakia { if (x mota === zenbakia) { itzuli x + 1 } else { itzuli x + "!" }}

Iturria: opennet.ru

Gehitu iruzkin berria