CodeForge

Maquetación Web Dinámica / TypeScript en la maquetación

Reto: migra tu página viva a TypeScript estricto

Reto65 min60 XP

Tu graduación como maquetador con red de seguridad: tomar la página viva del módulo 14 —scroll reveals, navbar inteligente y modal accesible— y migrarla a TypeScript estricto, sin un solo error del compilador. El resultado se ve y se comporta IGUAL; la diferencia es que ahora es imposible que un null o un typo la rompan sin que tú lo sepas antes.

Reto

La página viva, ahora tipada

Media60 min60 XP(×2 sin mirar la solución)

Qué debes construir

Migra tu proyecto del módulo 14 (o el de referencia de su reto) a un Vite vanilla-ts, con "strict": true, hasta que tsc no reporte NINGÚN error.

Requisitos:

  1. Todos los elementos tipados: querySelector<...> con el tipo correcto, querySelectorAll<HTMLElement> para las colecciones.
  2. Todos los null manejados: sin ! gratuitos; usa null-guards (if) u optional chaining donde corresponda.
  3. Eventos tipados: aprovecha la inferencia (KeyboardEvent en keydown) y castea event.target cuando haga falta.
  4. Cero errores en modo estricto: npx tsc --noEmit limpio.
  5. Mismo comportamiento y misma accesibilidad que el original (reveals con reduced-motion, navbar, modal con foco/Escape).

Reglas

  • Vite vanilla-ts, tsconfig estricto.
  • Nada de any (romperías el propósito) ni // @ts-ignore para tapar errores: resuélvelos de verdad.
  • El ! (non-null assertion) solo si de verdad no hay forma de que sea null y lo justificas; preferir el if.

60:00

Cuando estés listo, arranca el reloj.

Qué sigue

Módulo 15 cerrado: escribes interfaces con red de seguridad, del DOM a los datos. El módulo 16 cambia de disciplina y sube el techo creativo al máximo: GSAP, la librería de animación con la que se hacen los sitios premiados en Awwwards. Timelines, ScrollTrigger y scrollytelling — cuando el CSS del módulo 11 ya no alcanza, empieza GSAP.