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

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

Eksplicitno specificirane informacije o tipu omogućit će vam da izbjegnete mnoge greške tokom procesa razvoja, omogućit će korištenje dodatnih tehnika optimizacije, pojednostaviti otklanjanje grešaka i učiniti kod čitljivijim i lakšim za modifikacije i podršku od strane programera trećih strana. Predloženo je da se podrška za tipove implementira kao opciona karakteristika - JavaScript motori i vremena izvođenja koji ne podržavaju proveru tipa ignorisaće napomene sa informacijama o tipu i obraditi kod kao i ranije, tretirajući podatke tipa kao komentare. Ali alati za provjeru tipa moći će koristiti dostupne informacije za identifikaciju grešaka povezanih s pogrešnom upotrebom tipova.

Štaviše, za razliku od informacija o tipu specificiranih korištenjem JSDoc napomena navedenih u obliku komentara, direktna indikacija tipova direktno 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 greške u ukucanom JavaScript kodu bez dodatnih konverzija. Osim toga, ugrađena podrška za tipove omogućit će pokretanje programa napisanih na kucanim JavaScript dijalektima, kao što su TypeScript i Flow, bez transpiliranja s jednog jezika na drugi.

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

Među tipovima se predlaže dodavanje „string“, „broja“ i „boolean“, koji se mogu koristiti prilikom definisanja varijabli, parametara funkcije, elemenata objekta, polja klase, tipovanih nizova („broj[]“). Takođe se predlaže da se obezbedi podrška za spojene tipove (“string | broj”) i generičke. neka x: string; funkcija add(a: broj, b: broj) { return a + b; } interfejs Osoba { ime: string; age:broj; } funkcija foo (x: T) { return x; } funkcija foo(x: string | broj): string | broj { if (typeof x === broj) { return x + 1 } else { return x + "!" } }

izvor: opennet.ru

Dodajte komentar