Push

Challenge

Implement the generic version of Array.push

For example:

type Result = Push<[1, 2], "3">; // [1, 2, '3']

Solution

Zur Lösung müssen wir wieder den Spread-Operator nutzen, um ein neues Array zu erstellen, das das übergebene Array sowie das Element zusammenführt. Hierzu können wir Variadic tuple types nutzen. Hierfür muss der generische Parameter / Argument wieder mit einer Bedingung versehen werden, in diesem Fall, dass T ein Array-Typ sein soll.

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

References

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