반응형
문제
문자열에서 지정된 문자를 제거합니다
설명
/* _____________ Your Code Here _____________ */
type DropChar<S, C, T extends string = ""> = S extends `${infer A}${infer B}`
? A extends C
? DropChar<B,C,T>
: DropChar<B,C,`${T}${A}`>
:T
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
// @ts-expect-error
Expect<Equal<DropChar<'butter fly!', ''>, 'butterfly!'>>,
Expect<Equal<DropChar<'butter fly!', ' '>, 'butterfly!'>>,
Expect<Equal<DropChar<'butter fly!', '!'>, 'butter fly'>>,
Expect<Equal<DropChar<' butter fly! ', ' '>, 'butterfly!'>>,
Expect<Equal<DropChar<' b u t t e r f l y ! ', ' '>, 'butterfly!'>>,
Expect<Equal<DropChar<' b u t t e r f l y ! ', 'b'>, ' u t t e r f l y ! '>>,
Expect<Equal<DropChar<' b u t t e r f l y ! ', 't'>, ' b u e r f l y ! '>>,
]
타입스크립트로 문자열을 다루는 방법을 알면 해결할수 있다!
따붕extends야 고마워👍
반응형
'✍ 공부 > TypeScript' 카테고리의 다른 글
[type-challenges] StartsWith (0) | 2023.07.25 |
---|---|
[type-challenges] PickByType (0) | 2023.07.25 |
[type-challenges] IsNever (0) | 2023.07.04 |
[type-challenges] AnyOf< {[key:string]:never}와 {} type은 뭐가 다를까?> (0) | 2023.07.04 |
[type-challenges] Diff (0) | 2023.07.04 |