Cómo vendo TypeScript (Sales Pitch)
(2ality.com)- 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 comostring, 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
caseen una sentenciaswitch- Se produce un error si no se manejan todos los
casede la sentenciaswitch - También se produce un error si se incumple el requisito de que el valor restante debe ser del tipo
never
- Se produce un error si no se manejan todos los
- 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.jsonpuede 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.jsonse 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 unionse 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
- What is TypeScript?
- Tackling TypeScript (gratis)
4 comentarios
Hay beneficios en el tipado fuerte; pasa lo mismo en C++.
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.
En nuestra empresa, los equipos empezaron proyectos diciendo que JavaScript era suficiente, pero ahora todos se están cambiando a TypeScript.
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.