✍ 공부/TypeScript

[type-challenges] Trim

Po_tta_tt0 2023. 6. 13. 20:26
반응형

문제

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

설명


/* _____________ Your Code Here _____________ */

type CanTrim = ' ' | "\n" | "\t"

type Trim<S extends string> = S extends `${CanTrim}${infer T}` | `${infer T}${CanTrim}` ? Trim<T> : S

/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<Trim<'str'>, 'str'>>,
  Expect<Equal<Trim<' str'>, 'str'>>,
  Expect<Equal<Trim<'     str'>, 'str'>>,
  Expect<Equal<Trim<'str   '>, 'str'>>,
  Expect<Equal<Trim<'     str     '>, 'str'>>,
  Expect<Equal<Trim<'   \n\t foo bar \t'>, 'foo bar'>>,
  Expect<Equal<Trim<''>, ''>>,
  Expect<Equal<Trim<' \n\t '>, ''>>,
]

전 문제와 거의 비슷하게 풀 수 있었다 😊👍

반응형