title: Mutually exclusive attributes using Flow
body: <p>I'm building a UI component in the company I work for. It's in React Native and it uses Flow to typecheck. Thing is I want the components to have certain variants but they force me to have nothing but <code>booleans</code> for components attributes. And I'd like the components to disallow the use of more than one variant.</p>
  
  <p>Let's say my component <code>&lt;Button&gt;</code> has two variants: <code>primary</code> and <code>secondary</code>. If I could use an attribute <code>variant</code> it would be easier because I would be able to use <code>variant='primary'</code>. But I can't do that. It has to be <code>primary=true</code> but I have to make it exclusive: if I have <code>primary:true</code> you shouldn't be allowed to use <code>secondary:true</code> in the same component.</p>
  
  <p>I'been checking the <a href="https://flow.org/en/docs/types/unions/" rel="nofollow noreferrer">docs</a> but I couldn't find a way. And it makes sense, why would you have one? Just stop using <code>boolean</code>'s for everything, right?</p>
  
  <p>Question is: Is there a way?</p>