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;
  }
}