Earlier quoted context omitted.
Try it https://www.typescriptlang.org/play/?#code/C4TwDgpgBAIg9gcyg...
type Mutt = Dog & Cat const imposter: Mutt = { bark: () => console.log("woof"), meow: () => console.log("meow"), } You're both misunderstanding parent's point as well as the original point. Nobody ever claimed your link wouldn't compile.
Well imo GP is fundamentally misunderstanding TypeScript. It's explicitly a structural language not a nominal one. It goes against the entire design philosophy of TS