Implement `Trim<T>` which takes an exact string type and returns a new string with the whitespace from both ends removed. Master TypeScript template literal types in this medium-level challenge on TypeScriptPro.
In this medium-level challenge, you'll implement Trim<T> which takes an exact string type and returns a new string with the whitespace from both ends removed.
Implement Trim<T> which takes an exact string type and returns a new string with the whitespace from both ends removed.
For example
type trimmed = Trim<' Hello World '> // expected to be 'Hello World'Change the following code to make the test cases pass (no type check errors).
type Whitespace = ' ' | '\n' | '\t'
type Trim<S extends string> = S extends `${Whitespace}${infer After}`
? Trim<After>
: S extends `${infer Before}${Whitespace}`
? Trim<Before>
: SHow it works:
Whitespace that represents all whitespace charactersS to be a string with extends stringS extends ${Whitespace}${infer After} matches the string type and captures the rest of the string into After? Trim<After> recursively calls Trim with the rest of the string: S returns the string if it doesn't start or end with a whitespace character (base case)This challenge helps you understand TypeScript's template literal types 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