✍ 공부/TypeScript

    [type-challenges] EndsWith

    문제 두개의 string 타입을 받아 T가 U로 끝나는지 여부를 반환하는 EndsWith를 구현하세요. 설명 /* _____________ Your Code Here _____________ */ type EndsWith = 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, Expect, Expect, Expect, Expect, Ex..

    [type-challenges] StartsWith

    문제 두개의 string type T,U를 받고, 만약 T의 시작에 U가 있는지를 반환하는 StarsWith를 구현하세요. 설명 /* _____________ Your Code Here _____________ */ type StartsWith = T extends `${U}${infer B}` ? true :false /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, Expect, ] 쉽게 풀수 있었다 역시 따봉문자열아 고마워

    [type-challenges] PickByType

    문제 U에서 T 유형을 가진 속성들의 집합을 꺼냅니다 설명 /* _____________ Your Code Here _____________ */ type PickByType = {[K in keyof T as T[K] extends U ? K: never]:T[K]} type t = PickByType /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' interface Model { name: string count: number isReadonly: boolean isEnable: boolean } type cases = [ Expect, Expect, Expect..

    [type-challenges] Drop Char

    문제 문자열에서 지정된 문자를 제거합니다 설명 /* _____________ Your Code Here _____________ */ type DropChar = S extends `${infer A}${infer B}` ? A extends C ? DropChar : DropChar :T /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ // @ts-expect-error Expect, Expect, Expect, Expect, Expect, Expect, Expect, ] 타입스크립트로 문자열을 다루는 방법을 알면 해결할수 있다! 따붕ex..

    [type-challenges] IsNever

    문제 input type으로 T를 받는 IsNever type을 구현하십시오. 만약 T의 유형이 never으로 확인되면 true를 반환하고 아니면 false를 반환합니다 설명 /* _____________ Your Code Here _____________ */ type IsNever = [T] extends [never] ? true : false /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, Expect, ] 왜 [T]와 [never]일까? type ..

    [type-challenges] AnyOf< {[key:string]:never}와 {} type은 뭐가 다를까?>

    문제 Python의 any function을 타입 시스템으로 구현하세요 배열을 사용하고 배열의 요소가 참이면 true를 반환합니다. 배열이 비어 있으면 false를 반환합니다 설명 /* _____________ Your Code Here _____________ */ type False = 0 | '' | false | [] |undefined | null | {[key:string]:never} type AnyOf = T[number] extends False ? false: true type t = AnyOf type tt = AnyOf type temp = 0 extends null ? 'f' : 't' /* _____________ Test Cases _____________ */ import t..

    [type-challenges] Diff

    문제 0과 01에서 차이가 있는 개체를 가져옵니다 설명 /* _____________ Your Code Here _____________ */ type Diff = Omit /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type Foo = { name: string age: string } type Bar = { name: string age: string gender: number } type Coo = { name: string gender: number } type cases = [ Expect, Expect, Expect, Expect, ] Omit을 이용합..

    [type-challenges] KebabCase

    문제 camelCase나 PascalCase를 kebab-case로 바꿔주세요 FooBarBaz -> foo-bar-baz 설명 /* _____________ Your Code Here _____________ */ type KebabCase = S extends `${infer A}${infer B}` ? B extends Uncapitalize ? `${Uncapitalize}${KebabCase}` : `${Uncapitalize}-${KebabCase}` : S /* _____________ Test Cases _____________ */ import type { Equal, Expect } from '@type-challenges/utils' type cases = [ Expect, Expec..