Diferencia entre TypeScript y JavaScript: qué aportan los tipos y cuál aprender primero
La diferencia entre TypeScript y JavaScript se reduce a una capa añadida. JavaScript es el lenguaje que ejecutan los navegadores y Node.js, y sus tipos solo se conocen mientras el código se ejecuta. TypeScript es JavaScript más información de tipos que un verificador lee antes de ejecutar el código. Tras la comprobación, los tipos se borran y queda JavaScript normal, así que TypeScript nunca cambia cómo se comporta un programa.

La comparación suele presentarse como una elección entre dos lenguajes. Se parece más a una elección de herramientas: TypeScript conserva la sintaxis de JavaScript y añade información para un verificador. Esta guía muestra qué ofrece esa información, dónde exige esfuerzo y en qué orden conviene aprender ambos.
Ideas principales
- La sintaxis de JavaScript es válida en TypeScript; TypeScript añade reglas sobre cómo pueden usarse los distintos tipos de valores.
- TypeScript comprueba el código antes de ejecutarlo, luego borra los tipos y genera JavaScript normal.
- Dividir 4 entre un array vacío se ejecuta en JavaScript e imprime Infinity; TypeScript lo señala antes como un error.
- Aprende primero JavaScript y añade TypeScript cuando las variables, las funciones, los objetos y los arrays te resulten sólidos.
Qué añade TypeScript
JavaScript tiene tipos dinámicos: una variable no está atada a un solo tipo de valor, así que la misma variable puede contener un número, luego una cadena y después un booleano. También es de tipado débil, lo que significa que cuando una operación mezcla tipos los convierte en silencio en lugar de detenerse. El número 42 más la cadena «1» da la cadena «421». Estas reglas son flexibles, y permiten que algunos errores lleguen al programa en ejecución.
TypeScript añade comprobación estática: lee el código sin ejecutarlo e indica dónde se usan los valores de una forma que no tiene sentido. El manual oficial lo describe como un superconjunto tipado de JavaScript, de modo que la sintaxis de JavaScript existente sigue siendo válida. Muchos tipos no hace falta escribirlos, porque TypeScript los infiere, por ejemplo a partir del texto con el que se da valor a una variable.
Cómo se convierte TypeScript en JavaScript
Los navegadores y Node.js ejecutan JavaScript, no TypeScript. El compilador, tsc, comprueba un archivo .ts y escribe un archivo .js normal. Durante ese paso se borran los tipos, de modo que el resultado no lleva ninguna información de tipos.
Como principio, TypeScript nunca cambia el comportamiento en tiempo de ejecución del código JavaScript: el código que pasa de JavaScript a TypeScript se ejecuta igual, aunque se informe de errores de tipos. Por defecto, el compilador escribe igualmente el archivo JavaScript cuando encuentra errores; la opción noEmitOnError hace que se detenga.
La misma tarea pequeña en ambos
Imagina una función llamada area que multiplica el ancho y el alto de un objeto rectángulo. En JavaScript la escribes, la llamas con un objeto que tiene width y height, y funciona. Si escribes mal una propiedad como heigth, nada se queja mientras editas: el programa se ejecuta, lee una propiedad que no existe y da un resultado erróneo, a menudo lejos de la errata.
En TypeScript la misma función declara que su parámetro tiene un width y un height, ambos números. El verificador señala heigth antes de que se ejecute nada y sugiere height. Llamar a area con una cadena, o con un objeto al que le falta un campo, se señala del mismo modo. El cuerpo de la función es idéntico; solo son nuevas la anotación y el aviso más temprano.
Cuál aprender primero
El manual de TypeScript es directo en esto: no se puede aprender TypeScript sin aprender JavaScript, porque ambos comparten sintaxis y comportamiento en ejecución. Empieza por JavaScript: valores, variables, funciones, condiciones, bucles, objetos y arrays. Pasa a TypeScript cuando puedas escribir y depurar programas pequeños por tu cuenta; entonces los tipos describirán cosas que ya entiendes.
VITON13 SCHOOL tiene dos cursos gratuitos para seguir ese orden, JavaScript y TypeScript, con 16 lecciones breves cada uno. El código se ejecuta en el navegador y los ejercicios se comprueban en la propia página, así que puedes practicar sin instalar nada.
En palabras sencillas
JavaScript es una carta enviada sin revisar; TypeScript es la misma carta leída por un corrector estricto antes de salir. Quien la recibe lee las mismas palabras en ambos casos.
Pruébalo
Abre el curso de JavaScript y completa la primera lección, ejecutando el código en el navegador hasta que la página marque el ejercicio como superado.
Resultado esperado
El ejercicio se comprueba en la página, así que ves enseguida si tu código da el resultado esperado.
Comprueba tu respuesta: En JavaScript normal, el nombre de una propiedad está mal escrito como heigth. ¿Cuándo lo descubres y cuándo te lo diría TypeScript?
En JavaScript lo descubres solo cuando el programa se ejecuta y da un resultado erróneo. TypeScript señala la propiedad mal escrita durante la comprobación, antes de ejecutar el código, y sugiere height.
Preguntas y respuestas
¿Es TypeScript más rápido que JavaScript?
Los tipos no suponen ninguna diferencia en tiempo de ejecución: TypeScript se compila a JavaScript normal y nunca cambia su comportamiento en ejecución. La ventaja está en encontrar los errores antes, no en la velocidad de ejecución.
¿Puede el código JavaScript entrar en un proyecto de TypeScript?
Sí. La sintaxis de JavaScript es válida en TypeScript, y el código que se traslada se ejecuta igual. El verificador puede señalar errores de tipos en él, que apuntan a lugares que merece la pena revisar con más atención.
Empieza hoy el curso gratuito de JavaScript de VITON13 SCHOOL, termina sus 16 lecciones y continúa después con el curso de TypeScript para añadir tipos a lo que ya sabes.
Fuentes y lecturas
- TypeScript handbook: TypeScript for the New Programmer ↗Fuentes revisadas:
- TypeScript handbook: The Basics ↗Fuentes revisadas:
- MDN: JavaScript data types and data structures ↗Fuentes revisadas: