title: Typescript: instance of an abstract class
body: <p>Ok. this is very simple, just to remove an annoying error message.</p>
  
  <p>I have an abstract class Router:</p>
  
  <pre><code>export abstract class Router {
  }
  </code></pre>
  
  <p>And an interface like this</p>
  
  <pre><code>interface IModule {
      name: string;
      forms: Array&lt;IForm&gt;,
      route: typeof Router
  }
  </code></pre>
  
  <p>Now I have a class which looks  like this, and many others based on Router abstract</p>
  
  <pre><code>export class Module1 extends Router {
  }
  </code></pre>
  
  <p>Now, I want to instantiate the route like this:</p>
  
  <pre><code>let module: IModule = { 
      name: "My Module",
      forms: [],
      route: Module1
  }
  
  let router = new module.route(); 
  // TS2511: Cannot create an instance of an abstract class.
  </code></pre>
  
  <p>The code run just fine, and the instance of router = new Module1() is made properly, but I obviously doesn't write it properly in Typescript because I see           <code>TS2511: Cannot create an instance of an abstract class.</code> when transpiling.</p>
  
  <p>What is the correct way to define this? </p>
  
  <p>Thank you</p>