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.
Desafío
FácilCrea 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
createUserProfilecon"john_doe"y"John Doe" - Llama a
createUserProfilecon solo"jane_smith" - Llama a
calculateDiscountcon100y"premium" - Llama a
calculateDiscountcon solo75
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 resultadosEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Introducción a TypeScript
1Primeros pasos con TS
¿Qué es TypeScript?¿Por qué usar TypeScript?Tu primer código en TypeScriptProceso de compilación y erroresResumen: Introducción a TS4Trabajando con funciones
Tipado de parámetros y valores de retornoTipado de funciones de flechaEl tipo de retorno 'void'Parámetros opcionales con '?'Valores de parámetros por defectoTipado de parámetros restDefinición de tipos de funcionesRepaso: Construcción de funciones tipadas2Tipos principales
Tipos básicos: str, num, booleanEl tipo 'any': Vía de escapeEl tipo 'unknown'Trabajando con 'null' y 'undef'Inferencia de tipos en acciónAnotaciones de tipo explícitasResumen: Práctica de tipos principales5Tipos: Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de unión ('|')Trabajando con tipos de uniónTipos literalesTipos de intersección ('&')Combinando alias de tiposRepaso: Combinaciones de tipos avanzadas3Estructura de datos: Arrays y Tuplas
Arrays tipadosModificador 'readonly' para Arrays¿Qué es una Tupla?Declaración y acceso a TuplasDesestructuración de TuplasTuplas ReadonlyArrays tipados multidimensionalesOperador Spread con ArraysResumen: Arrays y TuplasPractica por tu cuenta: Compilador de JavaScript online