Type Predicate

TypeScript 🟡 Mid

Définition

Annotation de retour de fonction (param is Type) qui indique au compilateur qu'un narrowing a lieu. Permet de créer des type guards personnalises.

Analogie

Comme un certificat d'authenticité — la fonction garantit l'identité du type en sortie.

Exemple de code

interface Fish { swim(): void }
interface Bird { fly(): void }
function isFish(pet: Fish | Bird): pet is Fish {
  return (pet as Fish).swim !== undefined;
}

Cas d'usage

Valider des données complexes (API responses, events) avec un typage garanti après la vérification.

Anti-pattern

Écrire un prédicat incorrect (retourne true mais le type est faux) — le compilateur fait confiance aveugle.
#core#interview#safety

En entretien

  1. Explique-moi ce qu'est un type predicate.

    C'est une annotation de retour `param is Type` qui indique au compilateur qu'un narrowing a lieu, ce qui permet de créer des type guards personnalisés.

  2. Quel est le risque si le prédicat est mal écrit ?

    Le compilateur fait confiance aveugle au prédicat, donc s'il retourne true alors que le type est faux, TypeScript propage une information erronée.

  3. Pour quel usage utiliserais-tu un type predicate ?

    Pour valider des données complexes comme des réponses API ou des events, avec un typage garanti après la vérification.

Fiche mise à jour le 2026-09-27

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