Last of Array
Challenge
TypeScript 4.0 is recommended in this challenge
Implement a generic Last<T> that takes an Array T and returns its last element.
For example
type arr1 = ["a", "b", "c"];
type arr2 = [3, 2, 1];
type tail1 = Last<arr1>; // expected to be 'c'
type tail2 = Last<arr2>; // expected to be 1
Solution
Zur Lösung dieses Problems benötigen wir wieder variadic tuple types, da wir mit Arrays arbeiten werden. Zusätzlich nutzen wir wieder ‘infer’, mit dessen Hilfe wir das erste Element eines Arrays sowie die restlichen Elemente erhalten.
// bei [2,5,8] => H ist [2, 5] , Last ist 8
type Last<T extends any[]> = T extends [...infer H, infer Last] ? Last : T;