EndsWith
Challenge
Implement EndsWith<T, U> which takes two exact string types and returns whether T ends with U
For example:
type a = EndsWith<"abc", "bc">; // expected to be true
type b = EndsWith<"abc", "abc">; // expected to be true
type c = EndsWith<"abc", "d">; // expected to be false
Solution
Die Lösung dieses Problems ist es zu prüfen, ob die Zeichenkette U am Ende der Zeichenkette T steht.
Dies kann einfach geprüft werden, indem man einen Template-String mit U am Ende und einer beliebigen Rest-Zeichenkette nutzt.
Man kann es wie folgt ausdrucken: Erweitert T eine Zeichenkette, die mit U endet und neben U beliebige weitere Zeichen am Anfang der Zeichenkette besitzt?
type EndsWith<T extends string, U extends string> = T extends `${string}${U}`
? true
: false;