Kodokon kodokon.com

Typer les fonctions : paramètres, retour, optionnels

Sécurisez vos fonctions en typant leurs paramètres, leur valeur de retour et leurs paramètres optionnels.

9 min · 3 questions

Ouvrir cette leçon dans Kodokon

Une fonction est un mini-programme réutilisable : elle reçoit des paramètres (ses entrées) et peut retourner une valeur (sa sortie). Typer une fonction, c'est préciser le type de chaque paramètre, puis le type de la valeur retournée, noté après la parenthèse fermante.

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

const message = greet("Karim");
console.log(message); // "Bonjour Karim !"
Entrée : un string. Sortie : un string.

Certaines fonctions ne retournent rien : elles se contentent d'agir, par exemple afficher un message. Leur type de retour est alors void, un mot qui signifie « vide ». TypeScript vous avertira si vous tentez d'utiliser leur résultat comme une valeur.

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

logWelcome("Fatou"); // affiche, mais ne retourne rien
void indique l'absence de valeur de retour.

Comme pour les propriétés d'interface, un paramètre peut être rendu optionnel avec un ?. L'appelant peut alors le fournir ou non. À l'intérieur de la fonction, pensez à gérer le cas où il est absent.

TYPESCRIPT
function makeCoffee(size: string, sugar?: boolean) {
  if (sugar) {
    return "Un café " + size + " avec sucre.";
  }
  return "Un café " + size + " sans sucre.";
}

makeCoffee("grand", true); // avec sucre
makeCoffee("petit");       // sugar est absent
sugar? peut être fourni... ou pas.
TYPESCRIPT
function repeat(word: string, times: number = 2) {
  return word.repeat(times);
}

console.log(repeat("ha"));    // "haha"
console.log(repeat("ha", 3)); // "hahaha"
Variante : une valeur par défaut avec le signe =.

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Dans function greet(name: string): string, que désigne le second string ?
    • Le type du paramètre name
    • Le type de la valeur retournée par la fonction
    • Le nom de la fonction
  2. Quel type indique qu'une fonction ne retourne rien ?
    • null
    • empty
    • void
    • zero
  3. Où doit se placer un paramètre optionnel dans une fonction ?
    • Après les paramètres obligatoires
    • Avant les paramètres obligatoires
    • N'importe où dans la liste