title: Extend class that implements Interface shadows name
body: <p>Consider the following Typescript classes:</p>
  
  <pre><code>interface ITest {
    example(): string;
  }
  
  class A implements ITest {
    example() {
      return 'Test A';
    }
  }
  
  class B extends A {
    example() {
      return 'Test B';
    }
  }
  </code></pre>
  
  <p>This translates to the following Javascript code (see <a href="http://www.typescriptlang.org/Playground" rel="nofollow">http://www.typescriptlang.org/Playground</a>):</p>
  
  <pre><code>var __extends = this.__extends || function (d, b) {
      for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
      function __() { this.constructor = d; }
      __.prototype = b.prototype;
      d.prototype = new __();
  };
  var A = (function () {
      function A() {
      }
      A.prototype.example = function () {
          return 'Test A';
      };
      return A;
  })();
  var B = (function (_super) {
      __extends(B, _super);
      function B() {
          _super.apply(this, arguments);
      }
      B.prototype.example = function () {
          return 'Test B';
      };
      return B;
  })(A);
  </code></pre>
  
  <p>The code runs correctly and gives the result</p>
  
  <pre><code>"Test A"
  "Test B"
  </code></pre>
  
  <p>But checking this code with <a href="http://jshint.com/" rel="nofollow">JSLint</a> gives the warning</p>
  
  <blockquote>
    <p>One warning 17</p>
    
    <p>'B' is already defined.</p>
  </blockquote>
  
  <p>JsLint seems to have problems with <code>__extends(B, _super)</code>. But of course this is necessary for extending the class. So how can I make sure that JSLint does not complain when using inheritance in TypeScript?</p>