title: Comparison to FALSE is equivalent to negating value. Is it a ReSharper bug?
body: <p>I'm using ReSharper 9, and its TypeScript features. I'm writing typescript code. I have an interface like this:</p>
  
  <pre><code>interface Test {
    A?: boolean;
    ...
  }
  </code></pre>
  
  <p>And then I write an <code>if</code> statement like this, to test if member <code>A</code> exists and exactly equals to <code>false</code>. (aka.: if it does not exist, I want to treat it as true.)</p>
  
  <pre><code>if (myObj.A === false) {
    ...
  }
  </code></pre>
  
  <p>Then ReSharper gives me a hint about <strong>Comparison to False is equivalent to negating value</strong>, and if I accept the fix, it becomes</p>
  
  <pre><code>if (!myObj.A) {
    ...
  }
  </code></pre>
  
  <p>which is clearly not equivalent, because will be true if A is not defined for example.</p>
  
  <p>What have I missed? Is it really equivalent at runtime?</p>