Microsoft, Igalia y Bloomberg proponen incluir una sintaxis para la definición en JS
Microsoft, Igalia y Bloomberg dieron a conocer hace pocos dias que han tomado la iniciativa de incluir una sintaxis para la definición de tipo explícito en la especificación de JavaScript, similar a la sintaxis utilizada en el lenguaje TypeScript.
Actualmente, los cambios de prototipo propuestos para su inclusión en el estándar ECMAScript se han presentado para discusiones preliminares (Etapa 0).
Hoy nos complace anunciar nuestro apoyo y colaboración en una nueva propuesta de Etapa 0 para traer sintaxis de tipos opcional y borrable a JavaScript. Debido a que esta nueva sintaxis no cambiaría la forma en que se ejecuta el código circundante, actuaría efectivamente como comentarios . Creemos que esto tiene el potencial de hacer que TypeScript sea más fácil y rápido de usar para el desarrollo en todas las escalas. Nos gustaría hablar sobre por qué estamos persiguiendo esto y cómo funciona esta propuesta a un alto nivel.
Se menciona que al tener información de tipo explícita evitará muchos errores en el proceso de desarrollo, brindará la oportunidad de usar técnicas de optimización adicionales, simplificará la depuración y hará que el código sea más legible y fácil de modificar y mantener por parte de desarrolladores externos.
Ademas de que se propone implementar el soporte de tipos como una función opcional: los motores de JavaScript y los tiempos de ejecución que no admiten la verificación de tipos ignorarán las anotaciones con información de tipo y procesarán el código como antes, percibiendo los datos de tipo como comentarios. Pero las herramientas de verificación de tipos podrán, en función de la información disponible, detectar errores relacionados con el uso incorrecto de los tipos.
Antecedentes
Una tendencia reciente que nuestro equipo ha visto en el mundo de JavaScript es la demanda de un tiempo de iteración más rápido y una reducción de los pasos de construcción. En otras palabras, «hazlo más rápido y más simple».De alguna manera, esto ya está sucediendo. Gracias al éxito de los navegadores perennes, los desarrolladores a menudo pueden evitar compilar versiones más nuevas de JavaScript para ejecutarlas en tiempos de ejecución más antiguos. Hasta cierto punto, lo mismo ocurre con la agrupación: la mayoría de los navegadores tienen soporte incorporado para el uso de módulos, por lo que la agrupación puede verse más como un paso de optimización que como una necesidad. Este ha sido cada vez más el caso, entonces, ¿cómo se mantiene TypeScript?
Al mismo tiempo, a diferencia de la información de tipo especificada mediante anotaciones JSDoc especificadas en forma de comentarios, la especificación directa de tipos directamente en construcciones de definición de variable hará que el código sea más visual, comprensible y más fácil de editar.
Por ejemplo, los IDE habilitados para TypeScript podrán resaltar inmediatamente los errores en el código JavaScript escrito sin transformaciones adicionales. Además, el soporte de tipos incorporado hará posible ejecutar programas escritos en dialectos de JavaScript escritos como TypeScript y Flow sin transpilar de un idioma a otro.
De los tipos, se propone agregar «cadena», «número» y «booleano», que se pueden usar al definir variables, parámetros de funciones, elementos de objetos, campos de clase, matrices escritas («número []»). También se propone brindar soporte para tipos combinados («cadena | número») y genéricos.
Dado todo esto, planeamos presentar esta propuesta para la Etapa 1 en la próxima reunión plenaria de marzo de 2022 del TC39. Lo haremos con el apoyo y la orientación de nuestros co-campeones de esta propuesta, Rob Palmer en Bloomberg y Romulo Cintra en Igalia.
Alcanzar la Etapa 1 significaría que el comité de estándares cree que vale la pena considerar la sintaxis de tipo compatible para ECMAScript. Esto no es algo seguro: hay muchas perspectivas valiosas dentro del comité, y esperamos cierta cantidad de escepticismo. Una propuesta como esta recibirá muchos comentarios y un escrutinio adecuado. Puede implicar muchos cambios de diseño en el camino y puede llevar años obtener resultados.
En la próxima reunión de marzo del comité TC39, está previsto pasar a la primera etapa de consideración de la propuesta con la participación de la comunidad de expertos de ECMA.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.