Implement `TrimLeft<T>` which takes an exact string type and returns a new string with the whitespace beginning removed. Master advanced TypeScript template literal types in this medium-level challenge on TypeScriptPro.
Implement TrimLeft<T> which takes an exact string type and returns a new string with the whitespace beginning removed. 🎯
In this medium-level challenge, you'll implement trimleft<t> which takes an exact string type and returns a new string with the whitespace beginning removed.. Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.
This challenge will teach you essential skills for advanced TypeScript development and type-level programming.
Implement TrimLeft<T> which takes an exact string type and returns a new string with the whitespace beginning removed.
For example
[object Object]Change the following code to make the test cases pass (no type check errors).
// Video Solution: https://youtube.com/watch?v=H-wsvC3TPgs
/* _____________ Your Code Here _____________ */
type TrimLeft<S extends string> = any
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '../helpers'
type cases = [
Expect<Equal<TrimLeft<'str'>, 'str'>>,
Expect<Equal<TrimLeft<' str'>, 'str'>>,
Expect<Equal<TrimLeft<' str'>, 'str'>>,
Expect<Equal<TrimLeft<' str '>, 'str '>>,
Expect<Equal<TrimLeft<' \n\t foo bar '>, 'foo bar '>>,
Expect<Equal<TrimLeft<''>, ''>>,
Expect<Equal<TrimLeft<' \n\t'>, ''>>,
]
Unlock 102+ medium, hard, and extreme challenges to master advanced TypeScript.
One-time payment. Lifetime access.
This challenge requires understanding of TypeScript's type system.
type Whitespace = ' ' | '\n' | '\t'
type TrimLeft<S extends string> = S extends `${Whitespace}${infer Rest}`
? TrimLeft<Rest>
: SHow it works:
Whitespace that represents all whitespace charactersS to be a string with extends stringS extends ${Whitespace}${infer Rest} matches the string type and captures the rest of the string into Rest? TrimLeft<Rest> recursively calls TrimLeft with the rest of the string: S returns the string if it doesn't start with a whitespace character (base case)This challenge helps you understand TypeScript's advanced type system and how to apply this concept in real-world scenarios.
This challenge is originally from here.