Saltar al contenido
webtype.orgwebtype.org

    ↑↓ mover · ⏎ abrir · esc cerrar

    N.º 222 · 30 de julio de 2026 · Difícil

    Invierte

    Implementa Reverse<T> para que devuelva la tupla con sus elementos en orden inverso.

    01

    Intenta el puzle tú mismo

    Par 4

    Puzle

    reverse-tuple.ts
    Intento 1 de 4Aún sin comprobar

    Sustituye ??? — tu solución se comprueba con los casos de abajo. Tab indenta; pulsa Escape y luego Tab para sacar el foco.

    Comprobaciones

    4
    • Reverse<[1, 2, 3]>—
      → [3, 2, 1]
    • Reverse<[]>—
      → []
    • Reverse<['a']>—
      → ['a']
    • Reverse<[1, 'b', true]>—
      → [true, 'b', 1]

    Cómo se juzga una comprobación Igualdad exacta de tipos, no asignabilidad — una intersección no es lo mismo que el objeto aplanado.

    Cómo le fue a todo el mundo

    Menos de 5 personas han resuelto este puzle hasta ahora. La distribución aparece cuando la muestra sea lo bastante grande como para significar algo.

    Juego corto

    Menos caracteres

    Aún no hay marcas públicas.

    Archivo
    02

    Solución comentada

    Publicado el 31 de julio de 2026

    La solución

    type Reverse<T extends readonly unknown[]> =
      T extends readonly [infer H, ...infer R] ? [...Reverse<R>, H] : []

    El error más común

    type Reverse<T extends readonly unknown[]> =
      T extends readonly [infer H, ...infer R] ? [H, ...Reverse<R>] : []

    Esto recurre correctamente y reconstruye la tupla en el mismo orden en que la desarmó, así que es una función identidad rebuscada. La inversión depende únicamente de a qué lado de la expansión va la cabeza.

    Línea por línea

    1. [infer H, ...infer R]

      La división clásica cabeza/cola. H liga el primer elemento, R liga una tupla con todo lo demás.

    2. [...Reverse<R>, H]

      La cabeza se añade *después* de la cola invertida. El primer elemento de la entrada acaba por tanto el último, y cada nivel de la recursión empuja su cabeza una posición más atrás.

    Para recordar

    La recursión cabeza-cola reconstruye una tupla elemento a elemento; el orden en que la reensamblas es lo único que distingue una copia de una inversión, un filtro o un map.

    Usa