title: Object is possibly undefined -- but it's not...?
body: <pre><code>type Metadata = {
    tags?: Set&lt;string&gt;;
  };
  
  const metadata: Metadata = {
    tags: new Set&lt;string&gt;(),
  };
  
  metadata.tags.add('test'); // &lt;-- Object is possibly 'undefined'.ts(2532)
  </code></pre>
  <p>But how? I've initialized it to <code>new Set&lt;string&gt;</code> ... ?</p>
  <p>I assume because it is marked as nullable/optional in <code>Metadata</code>, but I figured the compiler would see that I had indeed initialized <code>tags</code> with a value.</p>