✍ 공부

    [type-challenges] ReplaceAll

    문제 주어진 문자열 S에서 부분 문자열 From을 찾아 모두 To로 교체하는 제네릭 ReplaceAll을 구현하세요. 설명 /* _____________ Your Code Here _____________ */ type ReplaceAll = From extends "" ? S : S extends `${infer A}${From}${infer E}` ? `${A}${To}${ReplaceAll}` : S type tt = ReplaceAll /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expe..

    [type-challenges] Replace

    문제 문자열 S에서 From를 찾아 한 번만 To로 교체하는 Replace를 구현하세요. 설명 /* _____________ 여기에 코드 입력 _____________ */ type Replace = From extends "" ? S : S extends `${infer A}${From}${infer B}` ? `${A}${To}${B}`: S /* _____________ 테스트 케이스 _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, ] 3번 케이스를 통과하기 위해 답을 흘끗 봤다 오늘 문제는 다 쉬워..

    [type-challenges] Capitalize

    문제 문자열의 첫 글자만 대문자로 바꾸고 나머지는 그대로 놔두는 Capitalize를 구현하세요. 설명 /* _____________ Your Code Here _____________ */ type MyCapitalize = S extends `${infer F}${infer E}` ? `${Uppercase}${E}` : S type tt = MyCapitalize /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, Expect, Expect, Expect..

    [type-challenges] Trim

    문제 정확한 문자열 타입이고 양쪽 끝의 공백이 제거된 새 문자열을 반환하는 Trim를 구현하십시오. 설명 /* _____________ Your Code Here _____________ */ type CanTrim = ' ' | "\n" | "\t" type Trim = S extends `${CanTrim}${infer T}` | `${infer T}${CanTrim}` ? Trim : S /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expect, Expect, ..

    [type-challenges] Trim Left

    0.문제 정확한 문자열 타입이고 시작 부분의 공백이 제거된 새 문자열을 반환하는 TrimLeft를 구현하십시오. 1.설명 /* _____________ 여기에 코드 입력 _____________ */ type Space = ' ' |'\n' | '\t' type TrimLeft = S extends `${Space}${infer R}` ? TrimLeft : S type temp = TrimLeft /* _____________ 테스트 케이스 _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, Expect, ..

    [type-challenges] Type Lookup

    0.문제 때때로 유니온 타입의 특정 속성을 기준으로 조회할 수도 있습니다. 이 챌린지에서는 유니온 타입 Cat | Dog에서 공통으로 사용하는 type 필드를 기준으로 해당하는 타입을 얻고자 합니다. 다시 말해서, 다음 예시에서는 LookUp으로 Dog 타입을, LookUp으로 Cat 타입을 얻을 수 있습니다. 1.설명 /* _____________ Your Code Here _____________ */ type LookUp = U extends {type:T} ? U :never /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' interface Cat { type..

    [type-challenges] POP

    0. 문제 배열 T를 사용해 마지막 요소를 제외한 배열을 반환하는 제네릭 Pop를 구현합니다. 1. 설명 /* _____________ 여기에 코드 입력 _____________ */ type Pop = T extends [ ...infer P, any] ? P : [] type temp = Pop /* _____________ 테스트 케이스 _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, ] 배열 T를 전개 연산으로 앞부분 전부(...infer P), 뒤 하나(any)로 나눈다 앞부분 전부 ==(infer) P 이기 때문에 앞부분만 출력하기 위해..

    [type-challenges] Last of Array

    0. 문제 배열 T를 사용하고 마지막 요소를 반환하는 제네릭 Last를 구현합니다. 1. 설명 /* _____________ 여기에 코드 입력 _____________ */ type Last = [any, ...T][T['length']] type tt = Last /* _____________ 테스트 케이스 _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect>, ] T['length'] => 배열 T의 길이를 구하기 길이는 하나가 더 구해지니까 앞에 any 넣기