Possibly an odd question, but I'm curious if it's possible to make an interface where one property or the other is required. So, for example... interface Message { text: string; attachment: Attachment; timestamp?: number; // ...etc } interface Attachment {...} In the above case, I'd like to make sure that either text or attachment exists. This is how I'm doing it right now. Thought it was a bit ve