Implement `EndsWith<T, U>` which takes two exact string types and returns whether `T` ends with `U` Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.
In this medium-level challenge, you'll implement EndsWith<T, U> which checks whether the string type T ends with the substring U, returning true or false.
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 falseChange the following code to make the test cases pass (no type check errors).
type EndsWith<T extends string, U extends string> = T extends `${string}${U}` ? true : falseHow it works:
T and U are constrained to string types with extends stringT extends \$$`uses a template literal type to check ifTmatches any string followed byU` at the end${string} wildcard matches zero or more characters at the beginning, so we only care that U appears at the very end of Ttrue; otherwise falseU ('') always matches since ${string}${''} matches any string, while a space ' ' only matches strings that actually end with a spaceThis challenge helps you understand TypeScript's template literal types and pattern matching for string validation, and how to apply this concept in real-world scenarios.
This challenge is originally from here.
Be the first to access the course, unlock exclusive launch bonuses, and get special early-bird pricing before anyone else.
Only 27 Spots left
Get 1 month early access
Pre-Launch discount