title: How can I make TypeScript error on missing mapped key?
body: <p>This is what I have:</p>
  <pre class="lang-js prettyprint-override"><code>type TransferType = 'INTERNAL' | 'WITHDRAWAL' | 'DEPOSIT'
  
  type TransferEvents = Record&lt;TransferType, Record&lt;string, TypeFoo | TypeBar&gt;&gt;
  
  export interface EventsTooltip extends TransferEvents {
    some: string;
    extra: number;
    keys: boolean:
    INTERNAL: Record&lt;string, TypeFoo&gt;;
    WITHDRAWAL: Record&lt;string, TypeBar&gt;; 
    DEPOSIT: Record&lt;string, TypeBar&gt;;
  }
  </code></pre>
  <p>Is it possible to make TypeScript throw an error if I add another type to <code>TransferType</code>, like <code>'CORRECTION'</code>, but forget to add it to <code>EventsTooltip</code>? While also retaining the ability to be more specific for the value type (<code>TypeFoo</code> or <code>TypeBar</code>) in the records?</p>