TypeScript vs JavaScript: la diferencia real

TypeScript vs JavaScript

TypeScript vs JavaScript: qué cambia y qué genera tsc | We.Inc

Compara lado a lado TypeScript y el JavaScript que genera al compilar, descubre qué detecta el comprobador de tipos, por qué los tipos desaparecen al ejecutar y cuándo basta con JavaScript puro.

TypeScript es JavaScript más un sistema de tipos. Escribes JavaScript normal con anotaciones de tipo opcionales, y el compilador tsc las comprueba y luego las elimina para producir JavaScript puro. Los navegadores y Node ejecutan ese resultado, así que los tipos nunca existen en tiempo de ejecución. La ventaja es detectar errores mientras editas, no un código más rápido.

Lado a lado

Elige un ejemplo abajo para ver un archivo TypeScript junto al JavaScript que tsc escribió para él. La mayoría de las veces, el resultado es tu código sin las anotaciones. Algunas funciones, como los enums, generan código real, y esa diferencia importa al elegir herramientas.

Preguntas frecuentes

¿TypeScript es un lenguaje distinto de JavaScript?

Es un superconjunto. Todo programa TypeScript se convierte en JavaScript, y TypeScript añade sintaxis para describir la forma de los valores. Aprende JavaScript primero; los tipos van encima de él, no lo sustituyen.

¿TypeScript hace que mi sitio sea más rápido?

No. Las anotaciones se eliminan antes de ejecutar el código, así que el navegador ejecuta el mismo JavaScript que habrías escrito a mano. Las ventajas son menos bugs que lleguen a los usuarios y refactorizaciones más seguras.

¿tsc se niega a compilar cuando hay un error de tipos?

No por defecto. tsc informa del error y aun así escribe el archivo .js, lo que permite una migración gradual. Activa noEmitOnError si quieres que una comprobación fallida bloquee el resultado.

¿Puede Node ejecutar archivos .ts sin un paso de build?

Las versiones recientes de Node eliminan la sintaxis de tipos borrable y ejecutan el archivo, con el type stripping activado por defecto desde v23.6.0 y v22.18.0. Node no comprueba tipos, y rechaza la sintaxis que necesita generar código, como los enums.

¿Cuándo es mejor opción JavaScript puro?

Los scripts pequeños, los prototipos rápidos y las páginas con pocas líneas de interactividad rara vez compensan la configuración. En cuanto un proyecto tiene varios archivos, varias personas o datos que pasan entre módulos, el comprobador empieza a ahorrar tiempo de verdad.

Qué hace realmente tsc

Los tipos se borran, así que valida los datos reales

Funciones que no solo se borran

Añadir TypeScript a un proyecto JavaScript

Instalar y crear un tsconfig

Instala el compilador en local, escribe un tsconfig.json inicial y ejecuta una comprobación sin escribir archivos.

allowJs permite que los archivos .js antiguos convivan con los .ts nuevos durante una migración; noEmit deja la generación de código a tu bundler.

Comprobar datos que el compilador no puede ver

Una guarda en tiempo de ejecución que acota el tipo

La función comprueba el valor de verdad, y el tipo de retorno le dice al compilador lo que demostró.

Anotaciones

Los tipos del parámetro y del retorno se comprueban y luego se borran. El cuerpo queda intacto.

Interface

Una interface no produce ningún resultado. Solo existe para el comprobador.

Enum

Un enum normal se convierte en un objeto real con mapeo inverso, así que esto es código generado, no sintaxis borrada.

const enum

tsc sustituye los miembros de un const enum por números en línea y deja un comentario con el nombre original.

Error de tipos

tsc informa: Argument of type 'string' is not assignable to parameter of type 'number'. Aun así escribe el archivo, salvo que esté activado noEmitOnError.

TypeScript y el JavaScript en que se convierte

Elige un ejemplo

TypeScript que escribes

JavaScript que genera tsc (target es2022)

Copiar TypeScript

Copiar JavaScript

{n} líneas de entrada, {v} líneas de salida

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio