Kodokon kodokon.com

Tipar las funciones: parámetros, retorno, opcionales

Haz tus funciones más seguras tipando sus parámetros, su valor de retorno y sus parámetros opcionales.

9 min · 3 preguntas

Abrir esta lección en Kodokon

Una función es un miniprograma reutilizable: recibe parámetros (sus entradas) y puede devolver un valor (su salida). Tipar una función significa especificar el tipo de cada parámetro y luego el tipo del valor devuelto, escrito después del paréntesis de cierre.

TYPESCRIPT
function greet(name: string): string {
  return "Hello " + name + "!";
}

const message = greet("Karim");
console.log(message); // "Hello Karim!"
Entrada: un string. Salida: un string.

Algunas funciones no devuelven nada: simplemente realizan una acción, como mostrar un mensaje. Su tipo de retorno es entonces void, una palabra que significa «vacío». TypeScript te avisará si intentas usar su resultado como un valor.

TYPESCRIPT
function logWelcome(name: string): void {
  console.log("Welcome, " + name + "!");
}

logWelcome("Fatou"); // prints, but returns nothing
void indica la ausencia de un valor de retorno.

Al igual que las propiedades de una interfaz, un parámetro puede hacerse opcional con un ?. Quien llama a la función puede proporcionarlo o no. Dentro de la función, recuerda gestionar el caso en que falta.

TYPESCRIPT
function makeCoffee(size: string, sugar?: boolean) {
  if (sugar) {
    return "A " + size + " coffee with sugar.";
  }
  return "A " + size + " coffee without sugar.";
}

makeCoffee("large", true); // with sugar
makeCoffee("small");       // sugar is missing
sugar? puede proporcionarse... o no.
TYPESCRIPT
function repeat(word: string, times: number = 2) {
  return word.repeat(times);
}

console.log(repeat("ha"));    // "haha"
console.log(repeat("ha", 3)); // "hahaha"
Variante: un valor por defecto con el signo =.

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. En function greet(name: string): string, ¿a qué se refiere el segundo string?
    • Al tipo del parámetro name
    • Al tipo del valor devuelto por la función
    • Al nombre de la función
  2. ¿Qué tipo indica que una función no devuelve nada?
    • null
    • empty
    • void
    • zero
  3. ¿Dónde debe colocarse un parámetro opcional en una función?
    • Después de los parámetros obligatorios
    • Antes de los parámetros obligatorios
    • En cualquier lugar de la lista