Saltar al contenido
webtype.orgVariadic tuples

    ↑↓ mover · ⏎ abrir · esc cerrar

    Construcciones

    Variadic tuples

    Esparcir y encajar tuplas por posición, que es como el nivel de tipos maneja listas.

    Qué es

    Una tupla conoce su propia longitud como tipo literal, el hecho sobre el que se construye todo tipo que cuenta. Combínalo con patrones de cabeza y resto y tienes recursión sobre una lista: quita un elemento, haz algo, recursa sobre lo que queda. Las listas de parámetros también son tuplas, y por eso las mismas técnicas reescriben firmas de funciones.

    Ejemplos

    • Push<[1, 2], 3>
      [1, 2, 3]
    • Tail<[1, 2, 3]>
      [2, 3]
    • ['a', 'b']['length']
      2

      La longitud literal. Un array respondería `number` aquí, y esa diferencia es toda la razón por la que las tuplas importan a nivel de tipos.

    Cada tipo resuelto de arriba lo imprimió TypeScript 5.9.3, no se escribió a mano.

    Lo que no hace

    • No te deja indexar más allá del final. La longitud de una tupla es una promesa, y TS2493 es el compilador cumpliéndola.
    • No recursa indefinidamente. Contar de uno en uno choca con el techo de instanciación alrededor de cincuenta, que es TS2589 y no es ajustable.

    Conclusión

    Cuando necesitas un número a nivel de tipos, casi siempre quieres una tupla que haces crecer y a la que luego preguntas la longitud. El contenido nunca se lee.