lass="typescript-code"><span class="tm-kw">let</span> <span class="tm-vr">x</span> = <span class="tm-kw">null</span>;</pre></p>
<p>Here, <code>null</code> has the type <code>null</code>, even with <code>--strictNullChecks</code> off,
but <code>x</code> has the type <code>any</code>. The compiler widens on assignment.
<code>undefined</code> works the same way.</p>
<h2 id="literal-widening"><a href="#literal-widening">Literal widening</h2></a>
<p>Literal widening is significantly more complex than "classic"
w