반응형
문제
두개의 string 타입을 받아 T
가 U
로 끝나는지 여부를 반환하는 EndsWith<T,U>
를 구현하세요.
설명
/* _____________ Your Code Here _____________ */
type EndsWith<T extends string, U extends string> =
U extends ""
? true
:T extends U
? true
:T extends `${infer A}${infer B}`
? B extends U
? true
: false
:false
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<EndsWith<'abc', 'bc'>, true>>,
Expect<Equal<EndsWith<'abc', 'abc'>, true>>,
Expect<Equal<EndsWith<'abc', 'd'>, false>>,
Expect<Equal<EndsWith<'abc', 'ac'>, false>>,
Expect<Equal<EndsWith<'abc', ''>, true>>,
Expect<Equal<EndsWith<'abc', ' '>, false>>,
]
반응형
'✍ 공부 > TypeScript' 카테고리의 다른 글
[type-challenges] StartsWith (0) | 2023.07.25 |
---|---|
[type-challenges] PickByType (0) | 2023.07.25 |
[type-challenges] Drop Char (0) | 2023.07.25 |
[type-challenges] IsNever (0) | 2023.07.04 |
[type-challenges] AnyOf< {[key:string]:never}와 {} type은 뭐가 다를까?> (0) | 2023.07.04 |