Menu
Coddy logo textTech

Parámetros opcionales con '?'

Parte de la sección Introducción a TypeScript del Journey de JavaScript de Coddy. Lección 25 de 73.

A veces querrás crear funciones donde ciertos parámetros no siempre sean obligatorios. TypeScript proporciona la sintaxis ? para marcar parámetros como opcionales, lo que significa que quienes llaman a la función pueden elegir si proporcionarlos o no al invocarla.

Para hacer que un parámetro sea opcional, se añade un signo de interrogación después del nombre del parámetro pero antes de la anotación de tipo:

function greet(name: string, greeting?: string): string {
  if (greeting) {
    return greeting + ", " + name;
  }
  return "Hello, " + name;
}

En este ejemplo, name es obligatorio mientras que greeting es opcional. Puedes llamar a esta función solo con el nombre (greet("Alice")) o con ambos parámetros (greet("Alice", "Good morning")). Dentro de la función, los parámetros opcionales tienen el tipo string | undefined, por lo que deberías comprobar si existen antes de usarlos.

challenge icon

Desafío

Fácil

Crea una función llamada createUserProfile que reciba dos parámetros: username de tipo string (obligatorio) y displayName de tipo string (opcional). La función debe devolver una cadena con una anotación de tipo de retorno explícita.

Cuando se proporcionan ambos parámetros, la función debe devolver: "Profile: [displayName] (@[username])"

Cuando solo se proporciona el nombre de usuario, la función debe devolver: "Profile: @[username]"

Crea otra función llamada calculateDiscount que reciba dos parámetros: price de tipo number (obligatorio) y membershipLevel de tipo string (opcional). La función debe devolver un número con una anotación de tipo de retorno explícita.

Cuando se proporcionan ambos parámetros, la función debe devolver el precio reducido en un 10% (multiplicar por 0.9).

Cuando solo se proporciona el precio, la función debe devolver el precio original sin cambios.

Prueba tus funciones llamándolas con los siguientes valores e imprimiendo los resultados:

  • Llama a createUserProfile con "john_doe" y "John Doe"
  • Llama a createUserProfile con solo "jane_smith"
  • Llama a calculateDiscount con 100 y "premium"
  • Llama a calculateDiscount con solo 75

Imprime cada resultado en una línea separada en el orden especificado anteriormente.

Pruébalo tú mismo

// TODO: Escribe tu código aquí
// Crea la función createUserProfile con las anotaciones de tipo adecuadas
// Crea la función calculateDiscount con las anotaciones de tipo adecuadas

// Prueba las funciones e imprime los resultados
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Introducción a TypeScript

Practica por tu cuenta: Compilador de JavaScript online