title: How to use generic in Typescript tuple
body: <p>I'm trying to create the correct signature of toTableGeneric function. It should take an array of Column, where the second generic can vary for each array element.</p>
  <p>The toTable function work for 2 elements, but I can't get the correct type for the toTableGeneric function.</p>
  <p>Is it possible in Typescript 4.5 ?</p>
  <pre><code>interface MyItem {
      stringValue: string;
      booleanValue: boolean;
  }
  
  interface Column&lt;Item, Value&gt; {
      getter: (row: Item) =&gt; Value;
      setter: (row: Item, value: Value) =&gt; void;
  }
  
  export const toTable = &lt;C1Type extends unknown, C2Type extends unknown&gt;(
      items: [Column&lt;MyItem, C1Type&gt;, Column&lt;MyItem, C2Type&gt;]
  ) =&gt; items;
  
  export const toTableGeneric = &lt;Columns extends Column&lt;MyItem, unknown&gt;[]&gt;(items: [...Columns]) =&gt; items;
  
  export const table = toTableGeneric([
      {
          getter: (row: MyItem) =&gt; row.stringValue,
          setter: (row, value) =&gt; {
              row.stringValue = value;
          },
      },
      {
          getter: (row: MyItem) =&gt; row.booleanValue,
          setter: (row, value) =&gt; {
              row.booleanValue = value;
          },
      },
  ]);
  </code></pre>