JavaScript es un lenguaje de programación que, a la hora de declarar una variable, no definimos el tipo de dato que le corresponde, sino que se asigna automáticamente y podemos modificarlo más adelante.
El problema con este comportamiento es que, aporta mucha flexibilidad y permite que los programas funcionen escribiendo menos código, también tiene frecuentes errores en tiempo de ejecución que no son detectables previamente (por ejemplo, cuando pretendemos comparar u operar con números mezclando algunos tipados como strings).
Al final escribimos más código, porque casteamos constantemente para forzar como deseamos que se comporte, esto para evitar que nuestro código pueda resultar inseguro.
Desarrolladores de Microsoft, brindan una propuesta para introducir una sintaxis extra y opcional en JavaScript, que de la posibilidad de añadir al lenguaje anotaciones para precisar el tipo de dato.
Las anotaciones serian tratadas como comentarios por el motor de Java, no alterarían la forma que se ejecuta el código circundante, pero pueden ser comprobados por verificadores externos a Java.
Los autores dejan claro que lo que presentan, sino también lo que no: “nuestro equipo no propone introducir la verificación de tipos de TypeScript en todos los navegadores y tiempos de ejecución de JavaScript, ni proponemos que se implemente ningún nuevo verificador de tipos en el navegador.
Ellos creen que hacer eso causaría problemas tanto para los usuarios de Java como para los de TypeScript debido a algunas desventajas, como el rendimiento en tiempo de ejecución, los problemas de compatibilidad con el código TypeScript existente y el riesgo de detener la innovación en el campo de la comprobación de tipos.
El objetivo de los creadores es poder presentar su propuesta en Marzo 2022 al TC39, el comité de estándares ECMAscript. “Esperamos cierto nivel de incredulidad; la propuesta recibirá muchos comentarios y un escrutinio exhaustivo, puede implicar muchos cambios de diseño en el cambio y pueden pasar años antes de que produzca resultados”.