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]