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
}
}
}Discussion 0
Join free to post in the discussion.