title: Typescript: Type that requires at least one property
body: <p>Consider that I have the following type:</p>
  
  <pre class="lang-js prettyprint-override"><code>type SomeType = {
    propOne: any;
    propTwo: any;
    propThree: any;
  }
  </code></pre>
  
  <p>The <code>propOne</code> is required, <code>propTwo</code> and <code>propThree</code> are optional but at least one of them is required. How can I define the type with that constraint?</p>
  
  <pre class="lang-js prettyprint-override"><code>// The following code is my expectation
  let someVar1: SomeType = { propOne: 1, propTwo: "two" } //Okay
  let someVar2: SomeType = { propOne: 1, propThree: "three" } //Okay
  let someVar3: SomeType = { propOne: 1, propTwo: "two", propThree: "three" } //Okay
  let someVar4: SomeType = { propOne: 1 } //Not Okay
  </code></pre>