Solución comentada
Publicado el 18 de agosto de 2026La solución
type TupleToUnion<T extends readonly unknown[]> = T[number]El error más común
type TupleToUnion<T extends readonly unknown[]> = T extends readonly [infer H, ...infer R] ? H : never
Un instinto razonable — desestructurar y tomar la cabeza — pero se queda ahí y devuelve solo el primer elemento. Recurrir y unir los resultados funcionaría, y es justo el camino largo: T[number] ya lo hace.
Línea por línea
T[number]Un acceso indexado cuya clave es el tipo
numbercompleto. Como cada índice numérico válido selecciona un elemento, pedirlos todos a la vez produce la unión de todos los tipos de elemento.TupleToUnion<[]>La tupla vacía no tiene ningún índice numérico válido, así que vuelve la unión de cero cosas — y la unión de nada es
never.
Para recordar
Recurre a la recursión solo cuando indexar no pueda expresar la pregunta. T[number], keyof T y T[keyof T] responden a una parte sorprendente de los problemas de tuplas y objetos en una sola línea.

