Make all properties within a Typescript interface optional
<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>