Saltar al contenido principal
Curso/Funciones/Rest Parameters
Volver a Funciones

Funciones — Leccion 4

·15 min

Rest Parameters

Recibe un numero indefinido de argumentos.

Rest parameters

Usa ... para recibir múltiples argumentos cómo un array.

typescript
function sumar(...numeros: number[]): number {
  return numeros.reduce((total, n) => total + n, 0);
}

sumar(1, 2, 3);       // 6
sumar(1, 2, 3, 4, 5); // 15

Con otros parámetros

typescript
function crearMensaje(prefijo: string, ...mensajes: string[]): string {
  return `${prefijo}: ${mensajes.join(", ")}`;
}

crearMensaje("Error", "Conexión", "Timeout");
// "Error: Conexión, Timeout"

Spread vs Rest

typescript
// REST: recibe argumentos cómo array
function sumar(...nums: number[]): number {
  return nums.reduce((a, b) => a + b, 0);
}

// SPREAD: expande un array cómo argumentos
const numeros = [1, 2, 3];
sumar(...numeros); // sumar(1, 2, 3)

Ejemplo práctico

typescript
interface Producto {
  nombre: string;
  precio: number;
}

function calcularTotal(...productos: Producto[]): number {
  return productos.reduce((total, p) => total + p.precio, 0);
}

function log(...items: (string | number)[]): void {
  console.log(items.join(" | "));
}

log("Inicio", 1, "Medio", 2, "Fin");
// "Inicio | 1 | Medio | 2 | Fin"

Ejercicio pratico

Crea una función 'promedio' que reciba any cantidad de numeros y retorne el promedio.

exercise.ts
Loading...
Resultado

Haz clic en "Ejecutar" para ver el resultado...

Curso de TypeScript — Aprende desde cero