Preparación por nivel
Senior en TypeScript
Escenarios complejos de TypeScript: arquitectura, compromisos técnicos, rendimiento y decisiones de mayor impacto.
¿Cómo diseñarías tipos públicos para una librería o capa de dominio sin exponer detalles internos?¿Cómo usarías generics para expresar contratos útiles y no solo sofisticación tipográfica?¿Cómo modelarías estados válidos con discriminated unions en lugar de flags inconsistentes?¿Cómo decidirías entre `unknown`, `any`, narrowing y runtime validation en una frontera externa?¿Cuándo `infer`, conditional types y mapped types ayudan de verdad y cuándo dañan la legibilidad?¿Qué estrategia seguirías para tipar una API HTTP o un SDK sin duplicar modelos por todas partes?¿Cómo harías que TypeScript acompañe la arquitectura en lugar de maquillar problemas de diseño?¿Qué harías con un dominio lleno de `any`, `as` y nulls implícitos heredados?¿Cómo plantearías una migración gradual a `strict` en un proyecto grande?¿Cómo usarías branded types o value objects para evitar mezclar identificadores y primitivas?¿Cómo diagnosticarías un error de inferencia difícil sin terminar silenciándolo con casts?¿Cómo diseñarías tipos para formularios o DTOs que evolucionan sin romper medio proyecto?¿Cuándo merece la pena modelar invariantes con tipos y cuándo es mejor resolverlas en runtime?¿Qué estrategia usarías para compartir tipos entre frontend y backend sin acoplar demasiado sus modelos?¿Cómo depurarías un caso donde el tipo parece correcto pero el runtime falla igual?¿Cómo modelarías errores y resultados en TypeScript para evitar `throw` indiscriminado o unions inútiles?¿Cómo evitarías que los schemas de validación y los tipos TypeScript diverjan con el tiempo?¿Qué revisarías en una PR TypeScript para detectar tipos que aparentan seguridad pero esconden huecos?