El nuevo estándar de TypeScript recibió una función inesperada
La comunidad de desarrolladores fue tomada por sorpresa: en diciembre de 2022, el equipo de Microsoft anunció la especificación final de TypeScript 5.0, que, además de los esperados decoradores y la mejora de rendimiento, incluyó soporte experimental para structural pattern matching — un concepto conocido desde hace tiempo por los desarrolladores de Python, Rust y Haskell.
Esta noticia fue una sorpresa incluso para los internos: todavía en octubre de 2022, en la hoja de ruta de TypeScript esta característica figuraba como "investigación para versiones futuras". Sin embargo, en la compilación final apareció bajo la bandera --experimentalPatternMatching.
«Recibimos cientos de solicitudes de la comunidad después de que en Python 3.10 se añadiera match-case. Resultó que era precisamente esta concisión lo que faltaba a los desarrolladores de TypeScript para trabajar con tipos de datos complejos», comentó Anders Hejlsberg, arquitecto principal de TypeScript.
La nueva construcción se ve así:
match (value) {
case (x: number) when x > 0: console.log('Positive');
case (x: number) when x < 0: console.log('Negative');
default: console.log('Zero');
}Según la encuesta de Stack Overflow de 2022, el 68% de los desarrolladores de TypeScript consideraban la ausencia de pattern matching como la principal deficiencia del lenguaje. Ahora, con el lanzamiento de TypeScript 5.0, este problema está resuelto — aunque en modo experimental.
Los expertos advierten: no se debe usar la función en producción hasta su estabilización (se espera en TypeScript 5.2 en 2023). Sin embargo, ya se puede probar en proyectos personales. La descarga de la nueva versión está disponible a través de npm: npm install typescript@5.0.
Recordemos que TypeScript 5.0 también recibió un sistema mejorado de inferencia de tipos, soporte para decoradores de stage 3 y una reducción del tiempo de compilación del 25% gracias a un nuevo analizador basado en AST.