¿Qué es TypeScript?

En este capítulo os presento TypeScript, os cuento qué es, cómo funciona, y por qué ha revolucionado la forma en la que miles de equipos de trabajo de todas partes del mundo han cambiado y mejorado la forma en la que programan.

TypeScript es una evolución natural de JavaScript que nos aporta herramientas para escribir código más seguro y cómodo. En esencia, TypeScript es JavaScript con extras, un superconjunto que añade funcionalidades que mejoran la ergonomía y la seguridad de nuestro código. Esto significa que todo lo que sabemos de JavaScript sigue siendo válido, pero ahora contamos con nuevas capacidades que nos ayudan a evitar errores comunes y a ser más productivos.

Una de las grandes ventajas de TypeScript es su sistema de tipos. En JavaScript, muchas veces asumimos qué tipo de datos estamos manejando, pero no hay una verificación estricta. Esto puede llevar a errores difíciles de detectar, como pasar un número cuando se esperaba un string, o recibir un valor undefined o null inesperado. Estos problemas suelen aparecer en producción y pueden ser frustrantes de depurar. TypeScript nos obliga a anotar los tipos de variables, parámetros y funciones, lo que permite que el editor o el compilador nos avisen inmediatamente si estamos usando un tipo incorrecto.

Por ejemplo, si definimos una función para hacer login que recibe un nombre de usuario y una contraseña, en JavaScript simplemente escribimos la función y esperamos que quien la use pase los datos correctos. En TypeScript, en cambio, especificamos que ambos parámetros deben ser strings. Así, si alguien intenta pasar un número o un objeto, el editor nos alertará antes de ejecutar el código. Esto no solo reduce errores, sino que también mejora la documentación implícita del código, haciendo que sea más fácil de entender y mantener.

function login(username: string, password: string): boolean {
  // lógica de autenticación
  return true;
}

// Uso correcto
login("usuario", "contraseña");

// Uso incorrecto que TypeScript detectaría
login(123, true); // Error: tipos incompatibles

Además, TypeScript funciona como un compilador que transforma nuestro código con tipos en JavaScript estándar que puede ejecutarse en cualquier entorno. Esto nos permite usar características modernas del lenguaje, incluso si el entorno donde se ejecuta no las soporta todavía. Por ejemplo, podemos escribir código con las últimas funcionalidades de ECMAScript y configurar TypeScript para que genere código compatible con versiones antiguas de navegadores o de Node.js. Esto es especialmente útil para mantener compatibilidad sin renunciar a las ventajas de las nuevas características.

Un aspecto interesante es que TypeScript puede generar código compatible incluso con versiones muy antiguas de JavaScript, como la versión 3, lo que permite dar soporte a navegadores obsoletos como Internet Explorer 8 si fuera necesario. Esto se logra gracias a la capacidad de configuración del compilador, que adapta el código para que funcione en el entorno que especifiquemos.

Por otro lado, TypeScript también nos permite aprovechar funcionalidades que no están aún estandarizadas en JavaScript, como los decoradores o las variables privadas, facilitando escribir código más limpio y expresivo con menos líneas. Esto contribuye a que nuestro desarrollo sea más ágil y menos propenso a errores.

En definitiva, TypeScript nos ofrece un entorno más seguro y eficiente para programar, ayudándonos a detectar errores antes de que lleguen a producción y permitiéndonos usar lo último en el lenguaje sin preocuparnos por la compatibilidad. Esto se traduce en menos tiempo depurando y más tiempo creando funcionalidades que aportan valor real.

Para quienes trabajamos con Node.js, TypeScript es especialmente valioso, ya que nos permite escribir código robusto y moderno que se adapta a diferentes versiones del entorno de ejecución. Aunque también es útil para desarrollo en navegador, en este contexto nos centraremos en su uso con Node.js y en cómo instalarlo para empezar a aprovechar todas sus ventajas.

En resumen, TypeScript es una herramienta que nos hace mejores programadores, facilitando la escritura de código claro, seguro y compatible con múltiples entornos, y que nos ayuda a mantener la calidad y la productividad en nuestros proyectos.

Lista de reproducción
  1. 1
    Temporada 1
    5 minutos
  2. 2
    ¿Qué es TypeScript?
    11 minutos
  3. 3
    Instalando TypeScript
    8 minutos
  4. 4
    Compilando un Hola Mundo sencillo
    7 minutos
  5. 5
    Hola Mundo pero con tipos
    10 minutos
  6. 6
    Tipos: tipos primitivos
    12 minutos
  7. 7
    Tipos: tipos especiales (any, null, ...)
    10 minutos
  8. 8
    Tipos: arrays y tuplas
    11 minutos
  9. 9
    Tipos: objetos
    7 minutos
  10. 10
    Funciones: lo básico
    9 minutos
  11. 11
    Funciones: tipando funciones
    9 minutos
  12. 12
    Clases: introducción a las clases
    9 minutos
  13. 13
    Clases: creando una clase
    10 minutos
  14. 14
    Clases: modificador private
    8 minutos
  15. 15
    Clases: modificador readonly
    3 minutos
  16. 16
    Clases: Atributos virtuales con getters y setters
    10 minutos
  17. 17
    Clases: herencia
    9 minutos
  18. 18
    Clases: modificadores abstract y protected
    8 minutos
  19. 19
    Tipos alias
    6 minutos
  20. 20
    Tipos literales
    5 minutos
  21. 21
    Uniones de tipos
    7 minutos
  22. 22
    Uniones discriminantes
    7 minutos
  23. 23
    Intersecciones de tipos
    5 minutos
  24. 24
    Interfaces: introducción
    7 minutos
  25. 25
    Interfaces: modificadores y funciones
    9 minutos
  26. 26
    Interfaces: usándolas con clases
    8 minutos
  27. 27
    Interfaces: herencia de interfaces
    8 minutos
  28. 28
    Interfaces: interfaces indizadas
    5 minutos
  29. 29
    Interfaces: funciones y tipos híbridos
    5 minutos
  30. 30
    ¿Qué diferencia hay entre interfaces y tipos? (2020)
    8 minutos
  31. 31
    Casteos con as
    6 minutos
  32. 32
    instanceof y las guardas
    9 minutos
  33. 33
    Tipos enumerados
    8 minutos
  34. 34
    Valores avanzados para enumerados
    7 minutos
  35. 35
    Enumerados con valores computados
    6 minutos
  36. 36
    Genéricos en tipos
    8 minutos
  37. 37
    Múltiples genéricos y buenas prácticas
    5 minutos
  38. 38
    Genéricos en funciones
    8 minutos
  39. 39
    Genéricos con restricciones
    6 minutos
  40. 40
    Tipos de utilidad
    3 minutos
  41. 41
    Exportando módulos
    9 minutos
  42. 42
    Importando módulos
    7 minutos
  43. 43
    Export default e import asterisco
    6 minutos
  44. 44
    tsconfig
    7 minutos
  45. 45
    Módulos desde NPM
    7 minutos
  46. 46
    Arroba types y los .d.ts
    8 minutos
  47. 47
    Ejemplo (1): creando una API REST simple en TypeScript
    11 minutos
  48. 48
    Ejemplo (2): montando un servidor Express
    8 minutos
  49. 49
    Ejemplo (3): haciendo las funciones de control de datos
    11 minutos
  50. 50
    Ejemplo (4): conectando todas las piezas
    7 minutos