Exhaustiveness Checking
Typescript техника која осигурава да су сви случајеви једне дискриминисане уније покривени.
Коришћењем типа never приморавамо компајлер да пријави грешку када проширимо дискриминисану унију.
function calculate_area(s: Shape) {
switch (s.tag) {
case "square": return s.size * s.size;
case "rectangle": return s.width * s.height;
case "circle": return Math.PI * s.radius ** 2;
default:
const _exhaustive_check: never = s;
return _exhaustive_check;
}
}