title: Double Equals (==) in TypeScript
body: <p>I've been writing some unit tests in TypeScript. The example QUnit test contains:</p>
  
  <pre><code>  ok( 1 == "1", "Passed!" );
  </code></pre>
  
  <p>The <code>tsc</code> compiler claims that:</p>
  
  <blockquote>
    <p>Operator '==' cannot be applied to types 'number' and 'string'</p>
  </blockquote>
  
  <p>And exits with status <code>1</code> (although it does correctly produce the JS).</p>
  
  <p>The spec says:</p>
  
  <blockquote>
    <p>The &lt;, >, &lt;=, >=, ==, !=, ===, and !== operators</p>
    
    <p>These operators require one operand type to be identical to or a subtype of the other operand type. The 
    result is always of the Boolean primitive type.</p>
  </blockquote>
  
  <p>So it looks like the warning / error is correct. Doesn't this rather defeat the point of the type coercing <code>==</code> operator though? Is there ever a valid use case for using <code>==</code> in TypeScript that <em>won't</em> produce this warning?</p>