bh2980.dev

106 - Trim Left

  • #Type Challenges
  • #TypeScript

질문

정확한 문자열 타입이고 시작 부분의 공백이 제거된 새 문자열을 반환하는 TrimLeft<T>를 구현하십시오.

예시

type trimmed = TrimLeft<'  Hello World  '> // 기대되는 결과는 'Hello World  '입니다.

// !collapse(1:15) collapsed
// 테스트 케이스
import type { Equal, Expect } from '@type-challenges/utils'

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

선행 지식

  1. 템플릿 리터럴 타입 역시 infer를 통해 타입을 분해 가능하다.

풀이