title: Enfore required fields in TypeScript (and work with var-arg constructor)?
body: <p>Since TypeScript 1.3 doesn't yet have abstract fields, one of the ways to require a field to be set is to put it as a constructor argument.</p>
  
  <p>However, since this version also don't have spread operators, this does not work very well if the child also has to pass a var-arg to the parent. For example:</p>
  
  <pre><code>class Parent {
      constructor (required1, required2, ...rest) { //...
  }
  
  class Child extends Parent {
      constructor (...args) {
         super(val1, val2, ???);
  }
  </code></pre>
  
  <p>In plain-old JavaScript, this pattern is usually done through slicing and applying <code>arguments</code> to the super constructor. However, such workaround does not work as <code>super</code> can only be called and not <code>apply()</code> on.</p>
  
  <p>Have I missed something? Otherwise, is there any alternatives to achieve the same thing?</p>