Cada vez que ejecutas ocurren dos cosas en orden. Primero se revisan los tipos: si hay un error, se muestra con su línea y no se genera nada, igual que hace TypeScript de verdad. Si no hay errores, se borran las anotaciones y el JavaScript resultante se ejecuta con el mismo intérprete de la ruta de JavaScript.
- Escribe el programa con sus anotaciones.
- Ejecuta y lee primero si el compilador aceptó los tipos.
- Después revisa la salida del programa.
El verificador no es tsc: es propio y cubre un subconjunto declarado —anotaciones, funciones, arreglos, type, interface, objetos, uniones, literales, propiedades opcionales, estrechamiento por typeof y por comparación, y genéricos de un parámetro—. Cuando no puede determinar un tipo lo deja pasar en vez de inventar un error. Quedan fuera las clases, los módulos, async y los tipos avanzados. Las doce soluciones de esta ruta se contrastan contra TypeScript 5.9.3 real en las pruebas del proyecto: si tsc y este verificador no coincidieran, la prueba falla.