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
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.
Curso de TypeScript
Módulo 1: Introducción a TypeScript
- ¿Qué es TypeScript?
- Configuración del Entorno de TypeScript
- Tipos Básicos
- Anotaciones de Tipo
- Compilando TypeScript
Módulo 2: Trabajando con Tipos
Módulo 3: Tipos Avanzados
Módulo 4: Funciones y Módulos
- Tipos de Función
- Parámetros Opcionales y Predeterminados
- Parámetros Rest
- Módulos y Espacios de Nombres
- Decoradores
Módulo 5: Programación Asíncrona
Módulo 6: Herramientas y Mejores Prácticas
- Linting y Formateo
- Pruebas de Código TypeScript
- TypeScript con Webpack
- TypeScript con React
- Mejores Prácticas