the <code>else</code>
block, <code>x</code> is still <code>C</code>.</p>
<p><code>instanceof</code> narrowing doesn't produce errors; if the checked class is
not a subclass of the declared type, the compiler does its best
to make sense of things:</p>
<p><pre class="typescript-code"><span class="tm-kw">class</span> <span class="tm-typ"><span class="className">E</span></span> { <span class="tm-vr">e</span>: <span class="tm-typ">any</span> } <span class="tm-cmt">// doesn't extend C!</span>
<span class="tm-kw">