Suele describirse a JavaScript como un lenguaje de programación de "tipado débil y dinámico". Eso significa que, a la hora de declarar una variable, no definimos el tipo de dato que le corresponde (numérico, cadena de texto, booleano…), sino que se asigna automáticamente ("123" será una cadena de texto, mientras que 123 será un dato numérico), y además siempre podemos cambiarlo más adelante.
El problema de este comportamiento es que, aunque aporta más flexibilidad, y permite que un programa funcione escribiendo menos código, también se traduce en frecuentes errores en tiempo de ejecución no detectables previamente (por ejemplo, cuando pretendemos comparar u operar con números mezclando algunos tipados como strings).
Al final, eso nos obliga a castear constantemente para forzar el comportamiento deseado (al final, escribimos más código), y así evitar que nuestro código pueda resultar siendo inseguro.
¿Te suena, programador de JavaScript?
Una propuesta para cambiar esto
Por ello, varios desarrolladores de Microsoft (compañía mantenedora de TypeScript, un superconjunto de JavaScript) han puesto sobre la mesa, respaldados por profesionales de otras empresas, una propuesta para introducir una sintaxis extra y opcional en JavaScript, que ofrezca la posibilidad de añadir al lenguaje anotaciones para precisar el tipo de dato.
Dichas anotaciones serían tratadas como meros comentarios por el motor de JavaScript (en resumen: los ignorarían) y, por lo tanto, no alterarían la forma en que se ejecuta el código circundante, pero podrían ser comprobadas por verificadores de tipo externos a …