typescript-parametros-funciones

Parámetros de funciones en TypeScript

TypeScript permite una gran variedad de tipos de parámetros en sus funciones. Vamos a ver cada uno de ellos

Parámetros obligatorios

Los parámetros obligatorios son aquellos que deben ser proporcionados cuando se llama a la función. Estos parámetros se definen en la declaración de la función sin ningún modificador especial.


function saludar(nombre: string, edad: number): void {
    console.log(`Hola ${nombre}, tienes ${edad} años.`);
}

saludar("Ana", 30); // Output: Hola Ana, tienes 30 años.

En este ejemplo,

  • nombre y edad son parámetros obligatorios.
  • La función saludar requiere que ambos parámetros se proporcionen al momento de la llamada.

Parámetros opcionales

En TypeScript, también podemos hacer que los parámetros de una función sean opcionales (esto significa que no es necesario proporcionar un valor para esos parámetros al llamar a la función).

Para hacer un parámetro opcional, simplemente agregamos un signo de interrogación (?) después del nombre del parámetro.

function saludar(nombre: string, edad?: number): void {
    if (edad) {
        console.log(`Hola ${nombre}, tienes ${edad} años.`);
    } else {
        console.log(`Hola ${nombre}.`);
    }
}

En este ejemplo, la función saludar recibe un parámetro obligatorio nombre de tipo string y un parámetro opcional edad de tipo number.

Si se proporciona un valor para edad, se mostrará un mensaje personalizado que incluye la edad. Si no se proporciona un valor para edad, se mostrará un mensaje genérico.

Parámetros por defecto

TypeScript también permite especificar valores por defecto para los parámetros de una función (esto significa que si no se proporciona un valor para un parámetro, se utilizará el valor por defecto especificado).

Para asignar un valor por defecto a un parámetro, utilizamos el operador de asignación (=) después del tipo de dato.

function saludar(nombre: string, edad: number = 18): void {
    console.log(`Hola ${nombre}, tienes ${edad} años.`);
}

En este caso, el parámetro edad tiene un valor por defecto de 18. Si no se proporciona un valor para edad al llamar a la función, se utilizará el valor por defecto.

Parámetros Rest

Los parámetros rest (o parámetros variádicos) permiten a una función aceptar un número variable de argumentos. Se definen utilizando los tres puntos (...) antes del nombre del parámetro y se recogen en un array.

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

console.log(sumar(1, 2, 3, 4)); // Output: 10
console.log(sumar(5, 10)); // Output: 15

En este ejemplo, numeros es un parámetro rest que permite a la función sumar aceptar cualquier cantidad de argumentos numéricos y devolver su suma.

Parámetros con tipos literales

En TypeScript, puedes definir parámetros que sólo acepten valores específicos usando tipos literales. Esto es útil cuando deseas restringir los valores permitidos para un parámetro.

function configurarModo(modo: "light" | "dark"): void {
    console.log(`Modo seleccionado: ${modo}`);
}

configurarModo("light"); // Output: Modo seleccionado: light
configurarModo("dark"); // Output: Modo seleccionado: dark

En este caso, el parámetro modo sólo puede aceptar los valores "light" o "dark", lo que asegura que sólo se puedan usar estos dos valores específicos.

Parámetros de función como tipo

TypeScript permite usar tipos de función como parámetros, lo que permite pasar funciones como argumentos a otras funciones.

function ejecutarOperacion(a: number, b: number, operacion: (x: number, y: number) => number): number {
    return operacion(a, b);
}

const suma = (x: number, y: number): number => x + y;
const resta = (x: number, y: number): number => x - y;

console.log(ejecutarOperacion(5, 3, suma)); // Output: 8
console.log(ejecutarOperacion(5, 3, resta)); // Output: 2

En este ejemplo, ejecutarOperacion acepta dos números y una función operacion que define cómo se deben combinar esos números.