<!-- BUGS: Please use this template. --> <!-- QUESTIONS: This is not a general support forum! Ask Qs at http://stackoverflow.com/questions/tagged/typescript --> <!-- SUGGESTIONS: See https://github.com/Microsoft/TypeScript-wiki/blob/master/Writing-Good-Design-Proposals.md --> **TypeScript Version:** 2.3.2 **Code** ```ts interface Square { kind: "square"; size: number; } interface Circle { kind: "circle"; radius: number; } type Shape = Square | Circle const area = (s: Shape) => { //Works switch (s.kind) { case "square": return s.size * s.size; case "circle": return Math.PI * s.radius ** 2; } } const area = (s: Shape) => { const {kind} = s switch (kind) { case "square": return s.size * s.size; // size doesn't exist on Circle case "circle": return Math.PI * s.radius ** 2; // radius doesn't exist on Square } } ```