Introducción

En TypeScript, los parámetros rest permiten a una función aceptar un número indefinido de argumentos como un array. Esto es útil cuando no se sabe de antemano cuántos argumentos se pasarán a la función. Los parámetros rest se definen utilizando el operador de propagación (...).

Conceptos Clave

  1. Definición de Parámetros Rest: Los parámetros rest se definen utilizando el operador ... seguido del nombre del parámetro.
  2. Uso de Parámetros Rest: Los parámetros rest se tratan como un array dentro de la función.
  3. Compatibilidad con Otros Parámetros: Los parámetros rest deben ser el último parámetro en la lista de parámetros de la función.

Ejemplo Básico

Veamos un ejemplo básico de cómo se utilizan los parámetros rest en TypeScript:

function sum(...numbers: number[]): number {
    return numbers.reduce((acc, curr) => acc + curr, 0);
}

console.log(sum(1, 2, 3)); // 6
console.log(sum(10, 20, 30, 40)); // 100

Explicación del Código

  1. Definición de la Función: La función sum acepta un número indefinido de argumentos de tipo number gracias al parámetro rest ...numbers.
  2. Uso del Método reduce: Dentro de la función, numbers se trata como un array y se utiliza el método reduce para sumar todos los elementos del array.
  3. Llamadas a la Función: Se llama a la función sum con diferentes números de argumentos, y la función devuelve la suma de todos los argumentos.

Ejemplo con Parámetros Adicionales

Los parámetros rest pueden coexistir con otros parámetros, pero deben ser los últimos en la lista de parámetros:

function multiply(factor: number, ...numbers: number[]): number[] {
    return numbers.map(num => num * factor);
}

console.log(multiply(2, 1, 2, 3)); // [2, 4, 6]
console.log(multiply(3, 4, 5)); // [12, 15]

Explicación del Código

  1. Definición de la Función: La función multiply acepta un parámetro factor de tipo number y un número indefinido de argumentos adicionales de tipo number gracias al parámetro rest ...numbers.
  2. Uso del Método map: Dentro de la función, numbers se trata como un array y se utiliza el método map para multiplicar cada elemento del array por el factor.
  3. Llamadas a la Función: Se llama a la función multiply con diferentes números de argumentos, y la función devuelve un nuevo array con los resultados de la multiplicación.

Ejercicio Práctico

Ejercicio

Escribe una función llamada concatenateStrings que acepte un número indefinido de cadenas de texto y las concatene en una sola cadena, separadas por un espacio.

function concatenateStrings(...strings: string[]): string {
    // Tu código aquí
}

// Prueba tu función
console.log(concatenateStrings("Hello", "world")); // "Hello world"
console.log(concatenateStrings("TypeScript", "is", "awesome")); // "TypeScript is awesome"

Solución

function concatenateStrings(...strings: string[]): string {
    return strings.join(' ');
}

// Prueba tu función
console.log(concatenateStrings("Hello", "world")); // "Hello world"
console.log(concatenateStrings("TypeScript", "is", "awesome")); // "TypeScript is awesome"

Explicación de la Solución

  1. Definición de la Función: La función concatenateStrings acepta un número indefinido de argumentos de tipo string gracias al parámetro rest ...strings.
  2. Uso del Método join: Dentro de la función, strings se trata como un array y se utiliza el método join para concatenar todos los elementos del array en una sola cadena, separadas por un espacio.

Conclusión

Los parámetros rest son una característica poderosa de TypeScript que permite a las funciones aceptar un número indefinido de argumentos. Esto es especialmente útil cuando no se sabe de antemano cuántos argumentos se pasarán a la función. Al dominar los parámetros rest, puedes escribir funciones más flexibles y reutilizables.

En el próximo tema, exploraremos los Módulos y Espacios de Nombres, donde aprenderás cómo organizar y estructurar tu código TypeScript de manera eficiente.

© Copyright 2024. Todos los derechos reservados