Instalando TypeScript

En este capítulo ejecuto una terminal e instalo TypeScript en un proyecto de NodeJS (con su package.json). Os enseño alternativas para instalar TypeScript de manera local o global, y hacemos un par de pruebas para asegurarnos de que ha quedado bien instalado.

Cuando nos adentramos en el mundo de TypeScript con Node.js, uno de los primeros pasos fundamentales es instalar correctamente el compilador de TypeScript, conocido como tsc. Aunque existen varias formas de hacerlo, es importante elegir la que nos garantice un entorno de trabajo estable, seguro y portable.

En primer lugar, es común encontrar recomendaciones para instalar TypeScript de manera global usando el comando npm install -g typescript. Esta instalación global permite ejecutar tsc desde cualquier ubicación en nuestro sistema, lo que puede parecer cómodo. Por ejemplo, si creamos una carpeta llamada Curso TS en el escritorio, podríamos ejecutar tsc sin importar en qué directorio estemos. Sin embargo, esta práctica tiene sus inconvenientes. Principalmente, asume que todas las personas que trabajen en el proyecto tienen TypeScript instalado globalmente, lo cual puede generar confusión y problemas, especialmente en equipos de trabajo o en entornos de integración continua (CI). Además, en sistemas Linux o Windows, instalar paquetes globalmente puede requerir permisos de superusuario, lo que no es recomendable por razones de seguridad.

Por estas razones, la mejor práctica que proponemos es instalar TypeScript como una dependencia de desarrollo local dentro del proyecto. Esto se logra creando primero un proyecto Node.js con npm init para generar un archivo package.json. Luego, instalamos TypeScript con el comando:

npm install --save-dev typescript

Esta instalación local coloca TypeScript dentro de la carpeta node_modules del proyecto y registra la dependencia en la sección devDependencies del package.json. Así, cualquier persona que clone el proyecto solo tendrá que ejecutar npm install para obtener la versión correcta de TypeScript que el proyecto requiere, asegurando que todos trabajen con la misma versión y evitando conflictos.

Una ventaja adicional de esta forma de instalación es que podemos fijar la versión exacta de TypeScript que queremos usar, por ejemplo, para evitar problemas con versiones preliminares o incompatibilidades. Esto hace que nuestro entorno sea mucho más portable y predecible.

Una vez instalado localmente, podemos ejecutar el compilador con:

npx tsc

o directamente desde los scripts definidos en el package.json, sin necesidad de tener TypeScript instalado globalmente.

En resumen, aunque la instalación global puede parecer más sencilla, instalar TypeScript como dependencia local en cada proyecto es la forma más profesional y segura de trabajar, especialmente en entornos colaborativos y de producción. Así, garantizamos que nuestro código se compile siempre con la versión adecuada y evitamos problemas de permisos o configuraciones inconsistentes.

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