Type Guard

TypeScript 🟡 Mid

Définition

Expression qui affine le type dans une branche conditionnelle. Inclut typeof, instanceof, in et les prédicats de type personnalises (is).

Analogie

Comme un vigile a l'entrée qui vérifie votre badge — une fois passe, on sait exactement qui vous êtes.

Exemple de code

function isString(val: unknown): val is string {
  return typeof val === "string";
}
if (isString(input)) {
  input.toUpperCase(); // type string garanti
}

Cas d'usage

Créer des gardes personnalises pour valider des données externes (API, formulaires) avec typage garanti.

Anti-pattern

Écrire un type guard qui ne vérifie pas réellement le type — le compilateur fait confiance au prédicat.
#core#interview#safety

En entretien

  1. Explique-moi un type guard.

    C'est une expression qui affine le type dans une branche conditionnelle, via typeof, instanceof, in ou un prédicat de type personnalisé (is). Ça sert notamment à créer des gardes pour valider des données externes comme une réponse API ou un formulaire.

  2. Quel est le risque d'un type guard personnalisé mal écrit ?

    S'il ne vérifie pas réellement le type annoncé, le compilateur fait quand même confiance au prédicat et propage un typage faux. C'est un piège car TypeScript ne peut pas vérifier la véracité du corps d'un prédicat is.

Fiche mise à jour le 2026-09-27

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