Predlaže se dodavanje sintakse s informacijama o tipu jeziku JavaScript

Microsoft, Igalia i Bloomberg preuzeli su inicijativu za uključivanje sintakse u JavaScript specifikaciju za eksplicitne definicije tipa, sličnu sintaksi koja se koristi u jeziku TypeScript. Trenutno su promjene prototipa predložene za uključivanje u standard ECMAScript predane na preliminarne rasprave (Faza 0). Na sljedećem sastanku odbora TC39 u ožujku planira se prijeći na prvu fazu razmatranja prijedloga uz uključivanje stručne zajednice iz ECMA-e.

Eksplicitno navedene informacije o tipu omogućit će vam da izbjegnete mnoge pogreške tijekom procesa razvoja, omogućit ćete korištenje dodatnih tehnika optimizacije, pojednostaviti otklanjanje pogrešaka i učiniti kod čitljivijim i lakšim za modifikaciju i podršku programera trećih strana. Predlaže se da se podrška za tip implementira kao izborna značajka - JavaScript motori i runtimes koji ne podržavaju provjeru tipa zanemarit će komentare s informacijama o tipu i obraditi kod kao i prije, tretirajući podatke o tipu kao komentare. Ali alati za provjeru tipa moći će koristiti dostupne informacije za prepoznavanje pogrešaka povezanih s neispravnom upotrebom tipova.

Štoviše, za razliku od informacija o tipu specificiranih pomoću JSDoc komentara navedenih u obliku komentara, izravna indikacija tipova izravno u konstrukcijama definicije varijable učinit će kod vizualnijim, razumljivijim i lakšim za uređivanje. Na primjer, IDE s podrškom za TypeScript moći će odmah istaknuti pogreške u upisanom JavaScript kodu bez dodatnih konverzija. Osim toga, ugrađena podrška za tipove omogućit će pokretanje programa napisanih u tipiziranim JavaScript dijalektima, kao što su TypeScript i Flow, bez prevođenja s jednog jezika na drugi.

Predlaže se dodavanje sintakse s informacijama o tipu jeziku JavaScript

Među tipovima se predlaže dodavanje "stringa", "numbera" i "booleana", koji se mogu koristiti pri definiranju varijabli, parametara funkcije, elemenata objekta, polja klase, tipiziranih nizova ("number[]"). Također se predlaže pružanje podrške za spojene tipove ("niz | broj") i generike. neka x: niz; funkcija dodaj(a: broj, b: broj) { return a + b; } sučelje Osoba { ime: niz; dob: broj; } funkcija foo (x: T) { return x; } funkcija foo(x: niz | broj): niz | broj { if (typeof x === broj) { return x + 1 } else { return x + "!" }}

Izvor: opennet.ru

Dodajte komentar