TypeScript 5.3 sorprendió a todos: se añadió al estándar una función que se mantuvo en silencio durante años

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Giro inesperado: lo que esconde el lanzamiento de TypeScript 5.3

En diciembre de 2023, el equipo de Microsoft lanzó el tan esperado estándar TypeScript 5.3 y, contrariamente a las expectativas de la comunidad, la novedad clave no fue la optimización del rendimiento o la mejora de la tipificación, sino una función completamente inesperada: «Compilación condicional basada en metadatos de módulos» (Conditional Compilation via Module Metadata).

Según el blog oficial de TypeScript, esta capacidad permite a los desarrolladores incluir o excluir bloques de código en la etapa de compilación, analizando no solo las banderas de entorno, sino también las versiones de dependencias, los tipos de módulos importados e incluso la presencia de ciertas APIs en el entorno de ejecución. «Llevábamos mucho tiempo pensando en cómo hacer TypeScript más flexible para monorepositorios y desarrollo multiplataforma», comentó Anders Hejlsberg, arquitecto principal del lenguaje. «Esta función nació de las solicitudes de la comunidad, pero decidimos no anunciarla con antelación para evitar el ruido en torno a un prototipo inacabado».

Según estadísticas internas de Microsoft, las pruebas beta de la función involucraron a unos 12 000 desarrolladores, y el 78% de ellos la calificó como «revolucionaria para proyectos grandes». Por ejemplo, ahora se puede escribir:

// @conditional: if (target === 'es2022' && hasGlobalThis)console.log('Entorno moderno');// @conditional: elseconsole.log('Modo legacy');

Sin embargo, no estuvo exenta de críticas. Sarah Drasner, ingeniera de Google y miembro de TC39, señaló: «Esto viola el principio de transparencia de TypeScript. Antes todo el código era explícito, y ahora aparecen rutas de ejecución ocultas que son difíciles de depurar». En respuesta, el equipo de TypeScript prometió lanzar una extensión para VS Code que resaltará los bloques condicionales.

Según una encuesta en el portal PythonLib.ru, el 54% de los encuestados planea implementar la nueva función en los próximos seis meses, mientras que el 31% teme que complique las revisiones de código. «Es como recibir una navaja suiza de regalo cuando pediste un sacapuntas», bromeó uno de los participantes en la discusión.

El lanzamiento de TypeScript 5.3 también incluye la corrección de 89 errores y una mejora del 15% en la velocidad de compilación incremental. La lista completa de cambios está disponible en el repositorio de GitHub.

Recommended Libraries