Type Guard
TypeScript 🟡 MidDé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
Termes liés
En entretien
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.
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