title: Interface with constructor inside implement questoin
body: <p>All:</p>
  
  <p>I am pretty new to TypeScript, when I read TypeScript Handbook from its official site, there is one example:</p>
  
  <blockquote>
    <p>Difference between static/instance side of class When working with
    classes and interfaces, it helps to keep in mind that a class has two
    types: the type of the static side and the type of the instance side.
    You may notice that if you create an interface with a construct
    signature and try to create a class that implements this interface you
    get an error:</p>
  </blockquote>
  
  <pre><code>interface ClockInterface {
      new (hour: number, minute: number);
  }
  
  class Clock implements ClockInterface  {
      currentTime: Date;
      constructor(h: number, m: number) { }
  }
  </code></pre>
  
  <blockquote>
    <p>This is because when a class implements an interface, only the
    instance side of the class is checked. Since the constructor sits in
    the static side, it is not included in this check.</p>
    
    <p>Instead, you would need to work with the 'static' side of the class
    directly. In this example, we work with the class directly:</p>
  </blockquote>
  
  <pre><code>interface ClockStatic {
      new (hour: number, minute: number);
  }
  
  class Clock  {
      currentTime: Date;
      constructor(h: number, m: number) { }
  }
  
  var cs: ClockStatic = Clock;
  var newClock = new cs(7, 30);
  </code></pre>
  
  <p>I just can not make myself understand why the last part work:</p>
  
  <pre><code>var cs: ClockStatic = Clock;
  var newClock = new cs(7, 30);
  </code></pre>
  
  <p><strong>I thought that cs is a variable which is going to refer to an object with ClockStatic Type, but why it can access a class name? And I thought Clock type is irrelevant to ClockStatic, why it can be given to cs?</strong></p>
  
  <p>Thanks</p>