En TypeScript, los parámetros opcionales y predeterminados son características que permiten a los desarrolladores definir funciones más flexibles y robustas. Estas características facilitan la creación de funciones que pueden ser llamadas con diferentes números de argumentos, proporcionando valores predeterminados cuando no se especifican algunos parámetros.

Parámetros Opcionales

Un parámetro opcional es un parámetro que no es obligatorio al llamar a una función. Para definir un parámetro opcional, se agrega un signo de interrogación (?) después del nombre del parámetro.

Sintaxis

function nombreFuncion(param1: tipo1, param2?: tipo2): tipoRetorno {
    // Cuerpo de la función
}

Ejemplo

function saludar(nombre: string, saludo?: string): string {
    if (saludo) {
        return `${saludo}, ${nombre}!`;
    } else {
        return `Hola, ${nombre}!`;
    }
}

console.log(saludar("Juan")); // Salida: Hola, Juan!
console.log(saludar("Juan", "Buenos días")); // Salida: Buenos días, Juan!

En este ejemplo, el parámetro saludo es opcional. Si no se proporciona, la función utiliza un saludo predeterminado.

Parámetros Predeterminados

Un parámetro predeterminado es un parámetro que tiene un valor por defecto si no se proporciona uno al llamar a la función. Para definir un parámetro predeterminado, se asigna un valor al parámetro en la definición de la función.

Sintaxis

function nombreFuncion(param1: tipo1, param2: tipo2 = valorPredeterminado): tipoRetorno {
    // Cuerpo de la función
}

Ejemplo

function saludar(nombre: string, saludo: string = "Hola"): string {
    return `${saludo}, ${nombre}!`;
}

console.log(saludar("Juan")); // Salida: Hola, Juan!
console.log(saludar("Juan", "Buenos días")); // Salida: Buenos días, Juan!

En este ejemplo, el parámetro saludo tiene un valor predeterminado de "Hola". Si no se proporciona un valor para saludo, se utiliza el valor predeterminado.

Combinando Parámetros Opcionales y Predeterminados

Es posible combinar parámetros opcionales y predeterminados en una misma función. Sin embargo, es importante recordar que los parámetros opcionales deben ir después de los parámetros obligatorios.

Ejemplo

function crearMensaje(nombre: string, edad?: number, saludo: string = "Hola"): string {
    if (edad) {
        return `${saludo}, ${nombre}. Tienes ${edad} años.`;
    } else {
        return `${saludo}, ${nombre}.`;
    }
}

console.log(crearMensaje("Juan")); // Salida: Hola, Juan.
console.log(crearMensaje("Juan", 25)); // Salida: Hola, Juan. Tienes 25 años.
console.log(crearMensaje("Juan", 25, "Buenos días")); // Salida: Buenos días, Juan. Tienes 25 años.

En este ejemplo, edad es un parámetro opcional y saludo tiene un valor predeterminado. La función crearMensaje puede ser llamada con uno, dos o tres argumentos.

Ejercicios Prácticos

Ejercicio 1

Crea una función calcularArea que calcule el área de un rectángulo. La función debe aceptar dos parámetros: ancho y alto, donde alto es opcional y tiene un valor predeterminado de 1.

function calcularArea(ancho: number, alto: number = 1): number {
    return ancho * alto;
}

// Pruebas
console.log(calcularArea(5)); // Salida: 5
console.log(calcularArea(5, 10)); // Salida: 50

Ejercicio 2

Crea una función formatearFecha que acepte tres parámetros: dia, mes y año, donde mes y año son opcionales. Si no se proporcionan, mes debe ser 1 y año debe ser 2000.

function formatearFecha(dia: number, mes: number = 1, año: number = 2000): string {
    return `${dia}/${mes}/${año}`;
}

// Pruebas
console.log(formatearFecha(15)); // Salida: 15/1/2000
console.log(formatearFecha(15, 5)); // Salida: 15/5/2000
console.log(formatearFecha(15, 5, 2021)); // Salida: 15/5/2021

Resumen

En esta sección, hemos aprendido sobre los parámetros opcionales y predeterminados en TypeScript. Los parámetros opcionales permiten definir funciones que pueden ser llamadas con diferentes números de argumentos, mientras que los parámetros predeterminados proporcionan valores por defecto cuando no se especifican algunos parámetros. Estas características hacen que las funciones sean más flexibles y fáciles de usar.

En el próximo tema, exploraremos los parámetros rest, que permiten trabajar con un número variable de argumentos en una función.

© Copyright 2024. Todos los derechos reservados