Rétrécissement de types

Le rétrécissement de types (narrowing) est le raffinement d'un type large vers un type plus précis à l'intérieur d'une branche de code, grâce à des tests comme typeof, instanceof, in ou une comparaison d'égalité. Le compilateur suit ces contrôles de flux et autorise alors les opérations propres au type restreint.

Exemple

function f(x: string | number) {
  if (typeof x === 'string') return x.toUpperCase();
  return x.toFixed(2);
}

Notions voisines

Tout le glossaire