title: Make all properties within a Typescript interface optional
body: <p>I have an interface in my application:</p>
  
  <pre><code>interface Asset {
    id: string;
    internal_id: string;
    usage: number;
  }
  </code></pre>
  
  <p>that is part of a post interface:</p>
  
  <pre><code>interface Post {
    asset: Asset;
  }
  </code></pre>
  
  <p>I also have an interface that is for a post draft, where the asset object might only be partially constructed</p>
  
  <pre><code>interface PostDraft {
    asset: Asset;
  }
  </code></pre>
  
  <p>I want to allow a <code>PostDraft</code> object to have a partial asset object while still checking types on the properties that are there (so I don't want to just swap it out with <code>any</code>). </p>
  
  <p>I basically want a way to be able to generate the following:</p>
  
  <pre><code>interface AssetDraft {
    id?: string;
    internal_id?: string;
    usage?: number;
  }
  </code></pre>
  
  <p>without entirely re-defining the <code>Asset</code> interface. Is there a way to do this? If not, what would the smart way to arrange my types in this situation be?</p>