Es proposa afegir una sintaxi amb informació de tipus al llenguatge JavaScript

Microsoft, Igalia i Bloomberg han pres la iniciativa d'incloure la sintaxi a l'especificació de JavaScript per a definicions de tipus explícites, similar a la sintaxi utilitzada en el llenguatge TypeScript. Actualment, els canvis de prototip proposats per incloure'ls a l'estàndard ECMAScript es presenten per a discussions preliminars (etapa 0). En la propera reunió del comitè del TC39 del març, està previst passar a la primera fase de consideració de la proposta amb la implicació de la comunitat d'experts de l'ECMA.

Tenir informació de tipus especificada explícitament us permetrà evitar molts errors durant el procés de desenvolupament, permetrà utilitzar tècniques d'optimització addicionals, simplificar la depuració i fer que el codi sigui més llegible i més fàcil per a la modificació i el suport per part de desenvolupadors de tercers. Es proposa implementar el suport de tipus com a característica opcional: els motors JavaScript i els temps d'execució que no admeten la verificació de tipus ignoraran les anotacions amb informació de tipus i processaran el codi com abans, tractant les dades de tipus com a comentaris. Però les eines de verificació de tipus podran utilitzar la informació disponible per identificar errors associats a un ús incorrecte de tipus.

A més, a diferència de la informació de tipus especificada mitjançant anotacions JSDoc especificades en forma de comentaris, la indicació directa dels tipus directament en construccions de definició variable farà que el codi sigui més visual, entenedor i més fàcil d'editar. Per exemple, els IDE amb suport TypeScript podran ressaltar immediatament els errors en el codi JavaScript escrit sense conversions addicionals. A més, el suport de tipus integrat permetrà executar programes escrits en dialectes JavaScript escrits, com ara TypeScript i Flow, sense transpirar d'un idioma a un altre.

Es proposa afegir una sintaxi amb informació de tipus al llenguatge JavaScript

Entre els tipus, es proposa afegir “cadena”, “número” i “booleà”, que es poden utilitzar a l'hora de definir variables, paràmetres de funció, elements d'objectes, camps de classe, matrius escrites (“número[]”). També es proposa proporcionar suport per a tipus combinats ("cadena | nombre") i genèrics. sigui x: cadena; funció add(a: nombre, b: nombre) { retorna a + b; } interfície Persona { nom: cadena; edat: nombre; } funció foo (x: T) { retorn x; } funció foo(x: cadena | número): cadena | nombre { if (tipus de x === nombre) { retorn x + 1 } else { retorn x + "!" } }

Font: opennet.ru

Afegeix comentari