#106Medium

Trim Left

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.

Challenge Instructions: Trim Left

Medium

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).

ChallengeSolution
// 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'>, ''>>,
]

Pro Challenge

Unlock 102+ medium, hard, and extreme challenges to master advanced TypeScript.

One-time payment. Lifetime access.

Video Walkthrough

Detailed Explanation

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>
  : S

How it works:

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.

Share this challenge

Learn the Concepts