Une union (A | B) signifie "soit A soit B." Une intersection (A & B) signifie "à la fois A et B en même temps."
= | | ;
: = ;
() { }
Une union (A | B) signifie "soit A soit B." Une intersection (A & B) signifie "à la fois A et B en même temps."
= | | ;
: = ;
() { }
function format(x: string | number) {
// x.toFixed(2); // ❌ toFixed doesn't exist on string
if (typeof x === "number") return x.toFixed(2); // ✅ narrowed to number
return x.toUpperCase(); // ✅ here it's a string
}
Jusqu'à ce que vous réduisiez une union, vous ne pouvez accéder qu'aux membres présents sur chaque membre de l'union — le compilateur vous protège.
type Name = { name: string };
type Age = { age: number };
type Person = Name & Age; // must have BOTH name and age
const p: Person = { name: "Ann", age: 30 }; // both required
Les intersections sont excellentes pour composer/mélanger des types d'objets (par exemple, ajouter des props à un type existant).
Les unions modélisent "l'une de plusieurs possibilités" — la base d'une modélisation d'état sûre (par exemple, les unions discriminées pour l'état du réducteur), les surcharges de fonction et les types nullable (T | null).
Les intersections composent les types ensemble.
Ensemble, elles rendent le système de types de TypeScript assez expressif pour refléter précisément les données réelles.
Une bibliothèque de questions d'entretien IT avec des réponses détaillées — du Junior au Senior.
Faire un don