Skip to content
RED SAGSkills
hard20 pts · first answer countstypescript

Exhaustive check with never

A teammate adds { kind: "triangle"; base: number; height: number } to the Shape union but forgets to update area. What happens?

type Shape =
  | { kind: 'circle'; r: number }
  | { kind: 'square'; side: number }

function area(s: Shape): number {
  switch (s.kind) {
    case 'circle': return Math.PI * s.r ** 2
    case 'square': return s.side ** 2
    default: {
      const unreachable: never = s
      return unreachable
    }
  }
}
Choose one answer

Discussion 0

Join free to post in the discussion.

Related questions