title: How to extend a class when one of the optional argument is not a member variable and it is required?
body: <p>Here is the code. We have a <code>TabController</code> (from sdk), I am extending this <code>TabController</code> class:</p>
  
  <pre class="lang-dart prettyprint-override"><code>class TabController extends ChangeNotifier {
     int length;
     TabController({ int initialIndex = 0,
        @required this.length, 
        @required TickerProvider vSync
     }):assert(length != null),
         assert(vSync != null);
  
  } //end of TabController
  
  class AppTabController extends TabController {
  
      AppTabController(int mInitialIndex,
         int mLength,
        TickerProvider mVsync):super(length: mLength, mVsync: vsync ){}
  
  }
  </code></pre>
  
  <p>Now this <code>AppTabController</code>'s constructor is giving syntax error. Seems like I can't extend <code>TabController class</code> because:</p>
  
  <ol>
  <li><code>vsync</code> is not a member variable of <code>TabController</code></li>
  <li>There are some assertions in <code>TabController</code> constructor itself due to which if the required args are not passed then it will crash.</li>
  </ol>
  
  <p>These are the compile errors:</p>
  
  <ol>
  <li>error: The named parameter <code>vsync</code> isn't defined</li>
  </ol>