Unshift

Challenge

Implement the type version of Array.unshift

For example:

type Result = Unshift<[1, 2], 0>; // [0, 1, 2,]

Solution

Die Aufgabe ähnelt der Push-Herausforderung, nur hier müssen wir das Element an den Anfang des Arrays einfügen. Entsprechend definieren wir den ersten generischen Eingabetyp als Array und nutzen anschließend den Spread-Operator, um die beiden Eingabetypen zusammenzuführen.

type Push<T extends unknown[], U> = [U, ...T];

References

(Variadic Tuple Types)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]