Cuándo usar Arrays, Tuplas, Maps y Sets en TypeScript con ejemplos

Hace unos días, un amigo me preguntó cómo evitar claves duplicadas en un array. Le respondí que existen otras colecciones para trabajar y que cada una se adapta a una situación específica. Como me apasiona la NBA, busqué una forma sencilla de explicar cada estructura de datos usando el contexto del baloncesto.
En el baloncesto todo se basa en la estrategia, y usar a los jugadores correctos en el momento adecuado marca toda la diferencia. De la misma forma, la elección de las estructuras de datos (arrays, tuplas, maps y sets) influye directamente en el funcionamiento de nuestro código. Vamos a revisar cada una para entender cuándo conviene usarlas, cuándo evitarlas y cuáles son sus desventajas.
Comencemos:
Arrays
Los arrays son como la plantilla de un equipo: contienen una lista de jugadores. Esta lista puede cambiar con el tiempo, agregando o eliminando jugadores según sea necesario.
Lee más sobre Arrays
Ejemplo:
Una lista de jugadores seleccionados en el draft para la próxima temporada.
let teamRoster: string[] = ["LeBron James", "Stephen Curry", "Kevin Durant"];Ventajas:
-
Tamaño dinámico.
-
Los jugadores (elementos) se pueden consultar directamente usando su posición (índice).
Desventajas:
- No cuenta con tipos estrictos por cada posición.
Cuándo usarlos:
- Cuando tienes una lista de elementos similares, como todos los bases o todos los novatos.
Cuándo evitarlos:
- Colecciones de tamaño fijo o con tipos de datos muy variados.
Tuplas
Las tuplas son como asignar jugadores exactos para posiciones específicas: cada posición está predefinida.
Lee más sobre Tuplas
Ejemplo: Una alineación titular fija, donde las posiciones y los jugadores están predefinidos.
let startingLineup: [string, string, string, string, string] = ["Point Guard", "Shooting Guard", "Small Forward", "Power Forward", "Center"];Ventajas:
-
Estructura estricta para datos de tamaño fijo.
-
Cada posición (índice) tiene un tipo de dato específico.
Desventajas:
- Poca flexibilidad: no puedes cambiar fácilmente el tamaño de la alineación.
Cuándo usarlas:
- Cuando las posiciones y los elementos son fijos, como el quinteto titular para un partido concreto.
Cuándo evitarlas:
- Plantillas de tamaño variable o alineaciones que cambian con frecuencia.
Maps
Los maps son como los números de las camisetas del equipo. Cada jugador (valor) tiene un número de camiseta único (clave).
Lee más sobre Maps
Ejemplo: Asociar a cada jugador con su número de camiseta.
let jerseyNumbers = new Map<string, number>();
jerseyNumbers.set("LeBron James", 6);
jerseyNumbers.set("Stephen Curry", 30);Ventajas:
-
Podemos usar cualquier tipo de dato como clave y valor.
-
Mantiene el orden de inserción.
Desventajas:
- Puede ser innecesario para asociaciones muy simples de clave y valor.
Cuándo usarlos:
- Al asociar jugadores con estadísticas, premios o cualquier dato específico.
Cuándo evitarlos:
- En listas simples o cuando un objeto estándar de JavaScript es suficiente.
Sets
Los sets son como la lista de jugadores convocados al All-Star. Ningún jugador se elige dos veces: todos son únicos.
Lee más sobre Set
Ejemplo: Un conjunto de jugadores seleccionados para el partido del All-Star.
let allStars = new Set<string>();
allStars.add("LeBron James");
allStars.add("LeBron James"); // ¡Ya es un All-Star!Ventajas:
-
Garantiza elementos únicos sin duplicados.
-
Comprobaciones rápidas de pertenencia.
Desventajas:
- No permite asociaciones clave-valor.
Cuándo usarlos:
- Colecciones de valores únicos, como los miembros del Salón de la Fama o los ganadores del premio MVP.
Cuándo evitarlos:
- Cuando se permiten duplicados o cuando necesitas pares de clave y valor.
Conclusión
TypeScript ofrece diversas estructuras de datos y cada una cuenta con ventajas y desventajas. Nuestro trabajo como ingenieros es identificar las fortalezas y el potencial de cada una. Espero que estos ejemplos te ayuden a decidir con claridad cuándo elegir o evitar cada estructura según la situación de tu proyecto.
Modern frontend development — Angular, React, TypeScript, accessibility, and performance.
Artículos Relacionados
Compartir este artículo
Si esta guía te resultó útil, compártela con tu equipo o con otros desarrolladores.
Software real. Lecciones reales.
Comparto las lecciones que aprendí por las malas, para que puedas evitarlas o estar preparado cuando ocurran.
Únete a 13,800+ desarrolladores y lectores.
Cero spam. Cancela tu suscripción en cualquier momento.