0Pricing
TypeScript Academy · Lección

Parámetros rest y spread con tipos

Asigne tipos a los parámetros rest y a las operaciones spread.

Parámetros rest y spread con tipos 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.

Introducción

Los parámetros rest recopilan varios argumentos en una matriz. TypeScript tipa el parámetro rest como una matriz del tipo de sus elementos.

Tipado de parámetros rest

Use la sintaxis `...name: T[]` para un parámetro rest. Esta sintaxis captura todos los argumentos restantes en una matriz.
function sum(...nums: number[]): number {
  return nums.reduce((a, b) => a + b, 0);
}
console.log(sum(1, 2, 3, 4)); // 10

Parámetros rest después de los parámetros obligatorios

Los parámetros rest deben ser los últimos. Los demás parámetros obligatorios deben aparecer antes.
function log(level: string, ...messages: string[]): void {
  console.log(level, messages.join(' '));
}
log('INFO', 'Server', 'started', 'on', 'port', '3000');

Expansión de matrices en funciones

Use la expansión `...` para pasar los elementos de una matriz como argumentos individuales. TypeScript comprueba que el tipo expandido coincida con los parámetros.
function add(a: number, b: number): number { return a + b; }
const args: [number, number] = [1, 2];
add(...args); // OK — tuple spread is type-safe

Expansión de matrices normales

Expandir una matriz común en una función con un número fijo de parámetros puede provocar un error, porque TypeScript no puede verificar que coincida el número de elementos.
const nums = [1, 2]; // number[] — length unknown
// add(...nums); // Error: spread must match parameters
const pair: [number, number] = [1, 2];
add(...pair); // OK — tuple has known length

Parámetros rest frente al objeto arguments

Los parámetros rest sustituyen al antiguo objeto `arguments`. Son matrices reales con compatibilidad completa con los tipos de TypeScript, a diferencia de `arguments`.

Expansión de objetos (no parámetros rest)

Expandir un objeto crea una copia superficial. TypeScript infiere el tipo combinado del resultado de la expansión.
const a = { x: 1, y: 2 };
const b = { z: 3 };
const c = { ...a, ...b }; // { x: number; y: number; z: number }

Sobrescritura de propiedades con la expansión

Al expandir, las propiedades posteriores sobrescriben las anteriores que tienen el mismo nombre.
const base = { color: 'red', size: 5 };
const updated = { ...base, color: 'blue' };
// { color: 'blue', size: 5 }

Expansión tipada en matrices

La expansión de una matriz crea una matriz nueva. TypeScript infiere el tipo combinado de los elementos.
const a: number[] = [1, 2];
const b: number[] = [3, 4];
const c: number[] = [...a, ...b]; // [1, 2, 3, 4]

Rest variádico en tuplas

TypeScript admite elementos rest en tipos de tupla para patrones variádicos avanzados.
type Strings = string[];
type StringsAndNumber = [...Strings, number];
const t: StringsAndNumber = ['a', 'b', 42];

Rest en la desestructuración

Use la sintaxis rest en la desestructuración para recopilar los elementos restantes en una matriz tipada.
const [first, ...rest]: number[] = [1, 2, 3, 4];
// first: number, rest: number[]

Comprobación rápida

¿Qué tipo infiere TypeScript para el parámetro rest `...items` en `function collect(...items: string[])`?

Resumen

Los parámetros rest (`...args: T[]`) recopilan los argumentos restantes en una matriz tipada. Expanda matrices en funciones usando tuplas para garantizar la seguridad de tipos. Expanda objetos para crear copias superficiales con tipos combinados inferidos.

Preguntas frecuentes

¿La lección «Parámetros rest y spread con tipos» es gratis?

Sí — el texto completo de «Parámetros rest y spread con tipos» 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 «Parámetros rest y spread con tipos»?

Asigne tipos a los parámetros rest y a las operaciones spread. 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 «Parámetros rest y spread con tipos»?

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. Anotaciones de tipos de parámetros y valores devueltos
  2. Parámetros opcionales y predeterminados
  3. Parámetros rest y spread con tipos
  4. void, never y firmas de funciones
← Volver a TypeScript Academy