title: Dart: extends generic class with restrictions
body: <p>Is this the correct way to declare a "generic class" that extends another "generic class" in dart? Note that the generic parameter has a type restriction.</p>
  
  <pre><code>// available types
  class BaseType {}
  class DerivedType extends BaseType {}
  
  class BaseClass&lt;Type extends BaseType&gt; {
    final Type prop;
    BaseClass(this.prop) {
      // can be either BaseType or DerivedType
      print(prop);
    }
  }
  
  class DerivedClass&lt;Type extends BaseType&gt; extends BaseClass&lt;BaseType&gt; {
    DerivedClass(BaseType prop) : super(prop);
  }
  </code></pre>
  
  <p>The above code works, but I'm not sure if I am using the correct syntax.</p>