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;

References