Construct Tuple

Challenge

Construct a tuple with a given length.

For example

type result = ConstructTuple<2>; // expect to be [unknown, unkonwn]

Solution

Zur Lösung dieses Problems benötigen wir wieder einen Akkumulator in Form einer Tupel, um den aktuellen Index zwischenzuspeichern und gleichzeitig das Element zu erfassen. Der Typ wird rekursiv so lange aufgerufen, bis die Länge des Akkumulators L entspricht und damit L-Elemente enthält.

type ConstructTuple<
  L extends number,
  Acc extends any[] = []
> = Acc["length"] extends L ? Acc : ConstructTuple<L, [...Acc, unknown]>;

References