Skip to content

⌨️ Comandos — TypeScript

Comandos útiles que voy aprendiendo.

🟢 Comandos base

ComandoQué haceEjemplo
tsc --initCrea el archivo de configuración tsconfig.json con las opciones del compilador. Se usa al iniciar un proyecto nuevo.tsc --init
tscCompila TODO el proyecto usando el tsconfig.json de la carpeta. Es la forma recomendada.tsc
tsc archivo.tsCompila solo ese archivo, pero ⚠️ IGNORA el tsconfig.json (usa reglas por defecto). Busca el archivo relativo a la carpeta de la terminal.tsc main.ts
node archivo.jsEjecuta el .js compilado con Node. Muestra en pantalla lo que tengas en console.log.node main.js
tsc archivo.ts && node archivo.jsCompila y, si salió bien, ejecuta. El && = "si el primero funcionó, corre el segundo". Un solo Enter.tsc main.ts && node main.js
tsc --watchRecompila automáticamente cada vez que guardas el .ts. (Aún no lo usamos, pero existe.)tsc --watch main.ts
cd carpetaCambia la carpeta actual de la terminal (moverte dentro del proyecto).cd "02-Ejercicios/Variable_base"

🛣️ El camino inicial (de cero a ver el resultado)

Flujo completo cada vez que empiezo una carpeta nueva de ejercicio:

1. tsc --init      →  crea el tsconfig.json   (SOLO la primera vez)
2. escribir código en main.ts + Cmd+S         (guardar SIEMPRE)
3. tsc             →  compila usando el tsconfig → genera/actualiza main.js
4. node main.js    →  ejecuta y muestra el resultado
#PasoComandoCuándo
1Crear configtsc --initUna sola vez por carpeta/proyecto
2Escribir + guardarCmd + SCada vez que edito
3CompilartscCada vez que cambio el código
4Ejecutarnode main.jsPara ver el resultado

El día a día (ya con el tsconfig.json creado): el paso 1 NO se repite. Guardo con Cmd+S y corro de un tirón:

bash
tsc && node main.js

⚠️ Los 3 tropiezos a evitar:

  1. Estar en la carpeta correcta (usa cd hasta donde está el main.ts).
  2. Guardar antes de compilar (pestaña VS Code: = sin guardar, = guardado).
  3. Usar tsc a secas, no tsc main.ts (con nombre se ignora el tsconfig.json).

📌 tsc --init es solo para crear el tsconfig.json la primera vez. Si ya existe, no se vuelve a ejecutar: se edita a mano.

📦 Varios archivos .ts a la vez

Con tsconfig.json, tsc compila TODOS los .ts de la carpeta (y subcarpetas) de un solo golpe: genera un .js por cada uno. No hay que listarlos.

Carpeta:                    Corres:  tsc
├── main.ts        ──────▶  ├── main.js        ✅
├── ejercicio2.ts  ──────▶  ├── ejercicio2.js  ✅
└── utils.ts       ──────▶  └── utils.js       ✅

Pero node ejecuta uno a la vez, así que compilas todo junto y corres el que quieras:

bash
tsc                  # compila TODOS los .ts de un golpe
node main.js         # ejecuta solo este
node ejercicio2.js   # o este otro

💡 Gracias a moduleDetection: "force" del tsconfig, cada archivo es un módulo con su propio espacio: let nombre en main.ts y let nombre en otro.ts NO chocan.

Para controlar qué se compila, en el tsconfig.json:

OpciónQué hace
"include": ["src"]Compila solo lo de esa carpeta
"exclude": ["pruebas"]Ignora esa carpeta
"files": ["main.ts"]Compila exactamente esos archivos

🔁 El ciclo de trabajo en TypeScript

TypeScript no corre directo: primero se traduce a JavaScript, y Node ejecuta ese JS.

  main.ts  ──tsc──▶  main.js  ──node──▶  salida en pantalla
 (escribo)          (compilado)          (Hola, TypeScript!)

⚠️ tsc NO recompila solo. Cada vez que cambias el .ts, tienes que volver a correr tsc para actualizar el .js. Si no, node ejecuta una versión vieja del .js. Por eso conviene usar tsc main.ts && node main.js de un tirón.

💡 tsc = TypeScript Compiler. Si te falta la c (ts, tss…), zsh responde command not found porque no existe ese comando.

🧪 Entrevista: ¿Por qué Node/el navegador no entienden TypeScript directamente? Porque TS es solo para el desarrollo: añade tipos que ayudan a detectar errores, pero al final se compila a JavaScript, que es lo único que Node y los navegadores ejecutan.

🏷️ Palabras clave de tipos (referencia rápida) — Clase 2

Resumen de cómo se escriben los tipos que voy aprendiendo. (Explicación detallada en Conceptos y Clase 2.)

Palabra claveCómo se escribeQué es
stringlet n: string = "hola"Texto
numberlet e: number = 30Números
booleanlet ok: boolean = trueVerdadero / falso
anylet x: anyCualquier cosa — ⚠️ apaga el chequeo, evitar
unknownlet x: unknownCualquier cosa, pero obliga a comprobar antes de usar
voidfunction f(): void {}La función no devuelve nada
neverfunction f(): never { throw ... }La función nunca termina (siempre lanza error)
T | Ulet m: string | undefinedUnion: puede ser un tipo u otro

Y el operador para comprobar tipos en ejecución (no es un tipo, es de JavaScript):

OperadorEjemploQué hace
typeofif (typeof x === "string") {...}Dice el tipo real de un valor y "estrecha" (narrowing) el tipo dentro del if

📎 Relacionado: Errores resueltos · Conceptos · Clase 2