Shift

Challenge

Implement the type version of Array.shift

For example

type Result = Shift<[3, 2, 1]>; // [2, 1]

Solution

Zur Lösung des Problems müssen wir lediglich das erste Element aus dem Array entfernen. Wir erhalten alle Elemente ohne das erste, indem wir das sowie die restlichen inferen, und anschließend einfach den Rest zurückgeben.

type Shift<T> = T extends [infer H, ...infer R] ? R : T;

References

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