L01 — Entorno TS strict y primer programa
~2.5 h · Semana 1
Arrancas M02 con un proyecto TypeScript real: compilador en modo estricto, ejecución con tsx y tu primer error de tipos leído con calma.
Objetivo
Crear projects/m02-katas/, activar strict: true, ejecutar un programa tipado y documentar el setup en git.
Por qué empieza así
Sin strict y sin hábito de leer errores del compilador, M02 se convierte en “JavaScript con archivos .ts”. Hoy instalas el suelo donde vivirán katas, el script P2 y la CLI .
Pasos (hazlos en orden)
1. Carpeta de evidencia (10 min)
Desde la raíz del plan:
mkdir -p projects/m02-katas/src
Revisa projects/m02-programacion/README.md y enlaza esta carpeta si aún no está.
2. Inicializar Node + TypeScript (25–35 min)
cd projects/m02-katas
npm init -y
npm install -D typescript tsx vitest @types/node
npx tsc --init
En tsconfig.json asegura:
{
"compilerOptions": {
"strict": true,
"module": "NodeNext",
"moduleResolution": "NodeNext",
"target": "ES2022",
"outDir": "dist",
"rootDir": "src",
"skipLibCheck": true
},
"include": ["src"]
}
No desactives strict “para avanzar”. Ese atajo te cobra intereses en la semana 4.
3. Primer programa tipado (30–40 min)
src/hola.ts:
function saludar(nombre: string): string {
return `Hola, ${nombre}`;
}
console.log(saludar("Adrian"));
Ejecuta:
npx tsx src/hola.ts
Rompe el tipo a propósito: saludar(42) y luego npx tsc --noEmit. Lee el mensaje completo (archivo, línea, tipo esperado). Corrige antes de seguir.
4. README del repo de katas (20 min)
projects/m02-katas/README.md con Node, confirmación de strict, y comandos tsx / npm test (cuando exista).
5. Commit atómico (15 min)
git add projects/m02-katas
git commit -m "feat(m02): proyecto katas con TypeScript strict"
6. Lectura + 2 ejercicios EJ (40–50 min)
Lee Eloquent JavaScript capítulo 1. Resuelve 2 ejercicios en src/ej-cap01-<nombre>.ts y ejecútalos con tsx.
Lectura de esta lección
| Fuente | Qué leer | Alternativa |
|---|---|---|
| Eloquent JavaScript | Cap. 1 | https://eloquentjavascript.net/ |
| TS Handbook | Everyday Types (intro) | Misma URL EN |
| Catálogo | Entrada M02 | Bibliografía · M02 |
Hecho cuando
- Existe
projects/m02-katas/constrict: trueysrc/hola.tsque corre. - Probaste un error de tipos con
tscy lo resumiste en una frase. - Commit en git con el proyecto katas.
- Dos ejercicios del cap. 1 de EJ en TS bajo
src/.
Errores comunes
- Poner
"strict": falsesin leer las opciones. - Solo ejecutar en el editor y no usar
tsx/tsc. - Instalar dependencias y no commitear.