0Pricing
TypeScript Academy · Lección

Elementos rest en tuplas

Utilice elementos rest dentro de tipos de tupla.

Elementos rest en tuplas es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 4 lecciones en total.

Tuplas de longitud variable

Normalmente, las tuplas tienen una longitud fija, pero un elemento rest permite que una posición absorba cualquier cantidad de elementos. Esto permite modelar datos que son parcialmente fijos y parcialmente variables.

Un elemento rest final

Escriba [string, ...number[]] para indicar: una cadena y, después, cero o más números. La primera posición es fija; el resto puede crecer libremente.

type Row = [string, ...number[]]
const r: Row = ["scores", 9, 8, 7]
console.log(r[0], r.length) // scores 4

La parte fija es obligatoria

Los elementos fijos iniciales deben estar presentes. La parte rest puede estar vacía, pero no se pueden omitir las posiciones fijas.

type Row = [string, ...number[]]
const min: Row = ["label"] // ok, zero numbers
// const bad: Row = [] // Error: missing string
console.log(min)

Elemento rest inicial

Un elemento rest también puede aparecer al principio, seguido de elementos fijos. Esto permite modelar una cabecera variable seguida de una cola fija.

type Trailing = [...number[], boolean]
const t: Trailing = [1, 2, 3, true]
console.log(t[t.length - 1]) // true

Elemento rest intermedio

El elemento rest puede situarse en el centro, entre elementos fijos iniciales y finales. TypeScript determina qué posiciones son fijas en cada extremo.

type Middle = [string, ...number[], boolean]
const m: Middle = ["start", 1, 2, false]
console.log(m[0], m[m.length - 1]) // start false

Solo un elemento rest por tupla

Una tupla puede contener como máximo un elemento rest. Dos elementos rest harían ambiguas las posiciones de los elementos, por lo que no están permitidos.

// type Bad = [...string[], ...number[]] // Error: only one rest allowed
type Ok = [string, ...number[]]
const o: Ok = ["x", 1]
console.log(o)

Desestructuración de una tupla rest

La desestructuración encaja perfectamente con los elementos rest de las tuplas. Las variables fijas ocupan las posiciones fijas; una variable rest captura la parte variable como un array con tipo.

type Row = [string, ...number[]]
const row: Row = ["scores", 9, 8]
const [label, ...values] = row
console.log(label, values) // scores [9, 8]

Elementos de tupla con etiquetas

Puede asignar nombres a las posiciones de una tupla para documentarlas. Las etiquetas aparecen en las sugerencias y las signaturas, pero no cambian los valores en tiempo de ejecución.

type Range = [start: number, end: number]
const span: Range = [0, 10]
console.log(span[0], span[1]) // 0 10

Etiquetas en elementos rest

Los elementos rest también pueden tener etiquetas, lo que resulta especialmente útil en las tuplas de parámetros de funciones para mostrar sugerencias más claras.

type Args = [command: string, ...flags: string[]]
const a: Args = ["build", "--watch", "--minify"]
console.log(a[0], a.slice(1))

Tuplas rest como listas de parámetros

Una tupla con un elemento rest puede describir la lista de parámetros de una función, lo que permite definir signaturas precisas con una parte fija seguida de una parte variádica mediante spread.

type Params = [name: string, ...scores: number[]]
function report(...args: Params): string {
  const [name, ...scores] = args
  return name + ": " + scores.join(",")
}
console.log(report("Ada", 9, 8))

Por qué son importantes las tuplas rest

Las tuplas rest expresan estructuras que los arrays normales no pueden: una cabecera obligatoria seguida de un cuerpo variable, un cuerpo variable seguido de un pie obligatorio, o ambas cosas. Son la base para tipar funciones variádicas.

type CSVRow = [id: number, ...fields: string[]]
const row: CSVRow = [1, "Ada", "Engineer"]
console.log(row[0], row.slice(1))

Comprobación rápida

Compruebe cuánto entiende los elementos rest de las tuplas.

Repaso

Un elemento rest de una tupla (...T[]) permite que una posición absorba cualquier cantidad de elementos, mientras que los elementos fijos iniciales y finales siguen siendo obligatorios. El elemento rest puede estar al final, al principio o en el centro, pero solo se permite uno por tupla. La desestructuración se ajusta a estas estructuras, las etiquetas añaden sugerencias claras y las tuplas rest son la base para tipar funciones variádicas.

Preguntas frecuentes

¿La lección «Elementos rest en tuplas» es gratis?

Sí — el texto completo de «Elementos rest en tuplas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Elementos rest en tuplas»?

Utilice elementos rest dentro de tipos de tupla. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar TypeScript Academy?

No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Elementos rest en tuplas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?

Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Parámetros rest en funciones
  2. Spread en arrays y objetos
  3. Elementos rest en tuplas
  4. Tipado de funciones variádicas
← Volver a TypeScript Academy