Predlaga se, da se v jezik JavaScript doda sintaksa z informacijami o vrsti

Microsoft, Igalia in Bloomberg so prevzeli pobudo za vključitev sintakse v specifikacijo JavaScript za eksplicitne definicije tipov, podobno sintaksi, ki se uporablja v jeziku TypeScript. Trenutno so prototipne spremembe, predlagane za vključitev v standard ECMAScript, predložene v predhodne razprave (stopnja 0). Na naslednjem zasedanju odbora TC39 v marcu je predviden prehod na prvo fazo obravnave predloga z vključitvijo strokovne skupnosti ECMA.

Z izrecno določenimi informacijami o vrsti se boste izognili številnim napakam med razvojnim procesom, omogočili uporabo dodatnih tehnik optimizacije, poenostavili odpravljanje napak in naredili kodo bolj berljivo ter lažjo za spreminjanje in podporo s strani razvijalcev tretjih oseb. Predlagano je, da se podpora za vrsto implementira kot izbirna funkcija – motorji in izvajalniki JavaScript, ki ne podpirajo preverjanja vrste, bodo prezrli opombe z informacijami o vrsti in obdelali kodo kot prej, pri čemer bodo podatke o vrsti obravnavali kot komentarje. Toda orodja za preverjanje tipov bodo lahko uporabila razpoložljive informacije za prepoznavanje napak, povezanih z nepravilno uporabo tipov.

Poleg tega bo v nasprotju z informacijami o vrsti, določenimi z opombami JSDoc, navedenimi v obliki komentarjev, neposredna navedba tipov neposredno v konstruktih definicije spremenljivke naredila kodo bolj vizualno, razumljivo in lažjo za urejanje. Na primer, IDE s podporo za TypeScript bodo lahko takoj označili napake v vneseni kodi JavaScript brez dodatnih pretvorb. Poleg tega bo vgrajena tipska podpora omogočila zagon programov, napisanih v tipkanih narečjih JavaScript, kot sta TypeScript in Flow, brez prevajanja iz enega jezika v drugega.

Predlaga se, da se v jezik JavaScript doda sintaksa z informacijami o vrsti

Med tipi je predlagano, da se doda "niz", "število" in "boolean", ki se lahko uporabljajo pri definiranju spremenljivk, funkcijskih parametrov, elementov objektov, polj razreda, tipiziranih nizov ("število []"). Predlagano je tudi, da se zagotovi podpora za združene tipe (»niz | številka«) in generike. naj x: niz; funkcija dodaj(a: število, b: število) { return a + b; } vmesnik Oseba { ime: niz; starost:številka; } funkcija foo (x: T) { return x; } funkcija foo(x: niz | število): niz | število { if (typeof x === število) { return x + 1 } else { return x + "!" }}

Vir: opennet.ru

Dodaj komentar