Overload Signatures

TypeScript 🟡 Mid

Définition

Plusieurs signatures de fonction déclarées avant l'implémentation pour décrire différentes combinaisons d'arguments/retours. L'implémentation doit être compatible avec toutes.

Analogie

Comme un restaurant avec différents menus selon le nombre de convives — même cuisine, mais offres distinctes.

Exemple de code

function parse(input: string): number;
function parse(input: number): string;
function parse(input: string | number) {
  return typeof input === "string"
    ? parseInt(input) : input.toString();
}

Cas d'usage

APIs avec des relations précises entre types d'entrée et de sortie (createElement, addEventListener).

Anti-pattern

Utiliser des overloads quand une simple union ou un generic suffirait — complexité inutile.
#core#interview#api-design

En entretien

  1. Explique-moi ce que sont les overload signatures.

    Ce sont plusieurs signatures de fonction déclarées avant l'implémentation pour décrire différentes combinaisons d'arguments et de retours, et l'implémentation doit être compatible avec toutes.

  2. Quand éviter les overloads ?

    Quand une simple union ou un generic suffirait, car les overloads ajoutent une complexité inutile.

  3. Dans quel type d'API rencontre-t-on souvent ce pattern ?

    Dans des APIs avec des relations précises entre types d'entrée et de sortie, comme createElement ou addEventListener.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre