V jezik JavaScript je predlagano dodati sintakso z informacijami o tipih

Microsoft, Igalia in Bloomberg so združili v pobudi, da v specifikacijo JavaScript vključijo sintakso za eksplicitno določanje tipov, podobno sintaksi, ki se uporablja v jeziku TypeScript. Trenutno je prototip sprememb, predlagan za vključitev v standard ECMAScript, predložen v predhodno razpravo (Stage 0). Na bližnjem marčevskem zasedanju odbora TC39 je predvideno, da se preide na prvo stopnjo obravnave predloga z vključitvijo strokovne skupnosti iz ECMA.

Jasna določitev informacij o tipih bo preprečila mnoge napake v procesu razvoja, omogočila uporabo dodatnih optimizacijskih tehnik, poenostavila odpravljanje napak in naredila kodo bolj berljivo ter enostavno za nadaljnje izboljšave in vzdrževanje s strani drugih razvijalcev. Podpora tipom naj bi bila izvedena kot opcijska možnost – JavaScript motorji in runtime-i, ki ne podpirajo preverjanja tipov, bodo ignorirali anotacije s informacijami o tipih in obravnavali kodo kot prej, obravnavajoč podatke o tipih kot komentarje. Vendar pa bodo orodja za preverjanje tipov lahko na podlagi razpoložljivih informacij odkrila napake, povezane z nepravilno uporabo tipov.

Pri tem pa, za razliko od informacij o tipih, ki jih določajo anotacije JSDoc, navedenih v obliki komentarjev, neposredno določanje tipov znotraj konstrukcij za definiranje spremenljivk naredi kodo bolj pregledno, razumljivo in enostavno za urejanje. Na primer, integrirana razvojna okolja s podporo za TypeScript lahko takoj osvetlijo napake v tipizirani JavaScript kodi brez dodatnih pretvorb. Poleg tega bo vgrajena podpora za tipe omogočila izvajanje programov, napisanih v tipiziranih dialektih JavaScript, kot sta TypeScript in Flow, brez transpiliranja iz enega jezika v drugega.

V jezik JavaScript je predlagano dodati sintakso z informacijami o tipih

Из типов предлагается добавить «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 + «!» } }

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster