4 puntos por GN⁺ 2025-03-25 | 4 comentarios | Compartir por WhatsApp
  • TypeScript es un lenguaje que añade información de tipos a JavaScript
    • La información de tipos se elimina antes de que el código sea ejecutado por el motor de JS → es decir, se requiere trabajo adicional en el proceso de escritura y despliegue
    • ¿Vale la pena ese trabajo adicional? → Definitivamente sí

Autocompletado y detección de errores mientras editas código

  • TypeScript ofrece autocompletado y detección de errores al escribir código
  • Ejemplo 1: errores tipográficos, tipos incorrectos y argumentos faltantes
    • Muestra un error al acceder a una propiedad que no existe. Tampoco aparece en el autocompletado
    • Muestra un error al llamar un método con un tipo incorrecto
    • Muestra un error cuando falta un argumento obligatorio
    • Muestra un error cuando se pasa un argumento de tipo incorrecto
  • Ejemplo 2: error en el valor de retorno de una función
    • Muestra un error si el valor de retorno no coincide con el tipo definido
    • Por ejemplo, si el valor de retorno es string[] pero el tipo de retorno está definido como string, se produce un error
  • Ejemplo 3: error al manejar propiedades opcionales
    • Si se usa una propiedad opcional como valor de retorno y el tipo no coincide, se muestra un error
  • Ejemplo 4: falta un case en una sentencia switch
    • Se produce un error si no se manejan todos los case de la sentencia switch
    • También se produce un error si se incumple el requisito de que el valor restante debe ser del tipo never
  • Ejemplo 5: error al manejar ciertos casos en el código
    • Al ramificar la lógica según un valor específico, se produce un error en casos incorrectos
    • Por ejemplo, se produce un error al acceder a una propiedad que no existe en un tipo de objeto específico

Especificar parámetros de función y tipos de retorno → también sirve como buena documentación

  • TypeScript permite especificar los parámetros de una función y su tipo de retorno
  • Mejora la comprensión del código y su mantenibilidad
  • Deja claro qué tipos tienen los argumentos y los valores de retorno de una función

Refuerza la refactorización de código

  • TypeScript ayuda a hacer la refactorización de código de forma más segura
  • Al renombrar un método, el cambio se refleja de forma segura en todo el código relacionado
  • Permite entender con precisión las relaciones entre las distintas partes del código

Usar TypeScript se ha vuelto más fácil

  • Ejecutar y compilar TypeScript ahora es más sencillo
  • Se puede ejecutar TypeScript directamente en plataformas como Node.js, Deno y Bun
  • Bundlers como Vite ofrecen soporte nativo para TypeScript
  • Se introdujo la técnica de type stripping → solo elimina la información de tipos sin hacer otras transformaciones
  • Mejoró la publicación de paquetes npm → soporte para generar automáticamente JavaScript y archivos de declaración de tipos

Desventajas de TypeScript

  • Tiene una curva de aprendizaje → es más complejo que JavaScript
  • En algunos paquetes npm pueden surgir problemas si no hay definiciones de tipos o si están mal hechas
  • La configuración de tsconfig.json puede ser compleja
    • Configurarlo de la forma más estricta posible puede ayudar a mitigar esos problemas
    • A medida que el type stripping se vuelve más claro, el papel de tsconfig.json se simplifica

Preguntas frecuentes sobre TypeScript

¿El código TypeScript no se vuelve muy pesado?

  • TypeScript permite escribir código con una cantidad mínima de definiciones de tipos gracias a la inferencia de tipos
  • Puede funcionar de forma útil incluso sin anotaciones de tipos complejas

¿TypeScript intenta convertir JavaScript en C# o Java?

  • Al principio añadió clases, módulos, enumeraciones y otros elementos para compensar funciones que faltaban en JavaScript
  • Actualmente TypeScript se está mejorando en línea con el estándar ECMAScript
  • No se añaden a TypeScript funciones que no existen en JavaScript

¿TypeScript solo soporta programación orientada a objetos (OOP)?

  • TypeScript también soporta muy bien patrones de programación funcional
  • Por ejemplo, discriminated union se usa con frecuencia en programación funcional

¿Es obligatorio aprender definiciones de tipos complejas?

  • Para la mayoría de los usos de TypeScript, las definiciones de tipos simples son suficientes
  • Las definiciones de tipos complejas son útiles al escribir librerías, pero no son necesarias en el uso general

¿Cuánto tiempo toma aprender TypeScript?

  • Los conceptos básicos pueden aprenderse en un solo día
  • Desde el día siguiente ya es posible escribir y depurar código sencillo
  • Luego se pueden aprender gradualmente tipos más complejos y funciones avanzadas

Lecturas recomendadas a continuación

4 comentarios

 
skrevolve 2025-03-26

Hay beneficios en el tipado fuerte; pasa lo mismo en C++.

 
slowandsnow 2025-03-25

Se siente como si desarrollaras a ciegas con JavaScript y al pasar a TypeScript por fin abrieras los ojos: la confianza que dan los tipos, el autocompletado y la combinación con Copilot.

 
bungker 2025-03-25

En nuestra empresa, los equipos empezaron proyectos diciendo que JavaScript era suficiente, pero ahora todos se están cambiando a TypeScript.

 
tsboard 2025-03-25

Parece que uno de los factores de éxito por los que TypeScript venció a Dart fue que no buscó reemplazar a JavaScript, sino complementarlo. De verdad siento que hice muy bien en aprenderlo.