20%20console.log(extra.name)%3B%0A%20%20%20%20if%20(extra.name%20%3D%3D%3D%20'one')%20%7B%0A%20%20%20%20%20%20%2F%2F%20...">Try</a></pre></p>
<p><code>extra</code>'s declared type is <code>Thing | undefined</code>, since it's an optional
parameter. However, its computed type varies based on context. On the
first line, in <code>preprocess(origin, extra)</code>, its computed type is still
<code>Thing | undefined</code>. However, when control flow encounters the
<code>if (extra)</code> check, it knows that <co