문제 링크T에서 K 프로퍼티만 선택해 새로운 오브젝트 타입을 만드는 내장 제네릭 Pick<T, K>을 이를 사용하지 않고 구현하세요.K에는 keyof T라는 제약을 두어 다음 반례를 만족시켰다.또, K에는 keyof T라는 제약이 있어서 Mapped type을 사
문제 링크T의 모든 프로퍼티를 읽기 전용(재할당 불가)으로 바꾸는 내장 제네릭 Readonly를 이를 사용하지 않고 구현하세요.Mapped Type을 활용하여 T\[keyof T]인 모든 값들을 readonly로 만들어주었다 이런 재밌는 코드도 있었다. 재귀를 활
문제 링크배열(튜플)을 받아, 각 원소의 값을 key/value로 갖는 오브젝트 타입을 반환하는 타입을 구현하세요.튜플의 T\[number]를 하면 유니온 타입으로 지정이 되고, 유니온 타입에 있는 값을 각각 키와 밸류로 갖는 mapped type이라고 정의했다.다음과
문제 링크배열(튜플) T를 받아 첫 원소의 타입을 반환하는 제네릭 First<T>를 구현하세요.\[infer First,...infer Rest]를 사용해서 첫 번째로 오는 타입을 참인 분기에서 사용할 수 있었다.만약 T에 빈 배열 타입이 들어올 경우에는 T ex
문제 링크배열(튜플)을 받아 길이를 반환하는 제네릭 Length<T>를 구현하세요.타입 뒤의 \[${프로퍼티명}]을 통해 해당 타입 내의 프로퍼티의 타입을 사용할 수 있다.참고로 number\[]와 같은 꼴의 'length는 숫자 리터럴이 아닌 number가 나온
문제 링크Promise와 같은 타입에 감싸인 타입이 있을 때, 안에 감싸인 타입이 무엇인지 어떻게 알 수 있을까요?예시:Promise<ExampleType>이 있을 때, ExampleType을 어떻게 얻을 수 있을까요?나는 conditional type이 여러 개
문제 링크조건 C, 참일 때 반환하는 타입 T, 거짓일 때 반환하는 타입 F를 받는 타입 If를 구현하세요. C는 true 또는 false이고, T와 F는 아무 타입입니다.일반적인 conditional type과 관련된 문제이다.다만, C는 true 또는 false이기
문제 링크 문제 JavaScript의 Array.concat 함수를 타입 시스템에서 구현하세요. 타입은 두 인수를 받고, 인수를 왼쪽부터 concat한 새로운 배열을 반환해야 합니다. 내 풀이 두 개의 배열 제네릭을 받아서 하나의 배열을 spread 타입으로 푼
문제 링크재귀를 활용한 기본적인 배열 순환 방식으로 접근했다.Includes<\[{ readonly a: 'A' }], { a: 'A' }>와 같이 비슷하거나Includes<\[1 | 2], 1>와 같이 대입가능한 값도 false가 나와야해서type-chal
문제 링크Array.push의 제네릭 버전을 구현하세요.너무 쉬운 문제라서 다른 사람의 풀이도 비슷했다spread 연산자를 이용해 배열 타입을 풀어해칠 수 있다
문제 링크Array.unshift의 타입 버전을 구현하세요.쉬운 문제라 다른 사람의 풀이도 대부분 비슷했다.spread 연산자를 사용했다.
문제 링크내장 제네릭 Parameters<T>를 이를 사용하지 않고 구현하세요.나의 풀이와 거의 유사했다.함수의 인자에 있는 spread 문법과, infer 타입 추론 개념이 연관있었다. 함수의 인자 부분에 spread 문법을 사용하면 배열 타입이 들어간다.이를

문제 링크내장 제네릭 ReturnType<T>을 이를 사용하지 않고 구현하세요.대부분 비슷한 풀이였다.다만 실제 ReturnType의 선언은 다음과 같았다.이 풀이에 싫어요가 많이 달려있길래 Function 키워드가 뭔지 궁금해 찾아봤다.Function의 선언은
문제 링크T에서 K 프로퍼티만 제거해 새로운 오브젝트 타입을 만드는 내장 제네릭 Omit<T, K>를 이를 사용하지 않고 구현하세요.antfu는 다음과 같은 풀이를 제시했다사실 내장 Exclude 타입과 MyExclude는 같다이 방식은 새로운 예제인 readon
문제 링크T에서 K 프로퍼티만 읽기 전용으로 설정해 새로운 오브젝트 타입을 만드는 제네릭 MyReadonly2<T, K>를 구현하세요. K가 주어지지 않으면 단순히 Readonly처럼 모든 프로퍼티를 읽기 전용으로 설정해야 합니다.타입스크립트에서 제공하는 커스텀
문제 링크 문제 객체의 프로퍼티와 모든 하위 객체를 재귀적으로 읽기 전용으로 설정하는 제네릭 DeepReadonly를 구현하세요. 이 챌린지에서는 타입 파라미터 T를 객체 타입으로 제한하고 있습니다. 객체뿐만 아니라 배열, 함수, 클래스 등 가능한 다양한
문제 링크튜플 값으로 유니온 타입을 생성하는 제네릭 TupleToUnion<T>를 구현하세요.문제 제작자가 제시한 풀이이다.이렇게 제작을 하면 배열로 제한을 두지 않는다.튜플 형태의 타입은 \[number]를 통해 값에 접근할 수 있다.만약 ${특정 타입}\[]
문제 링크체인 가능 옵션은 일반적으로 Javascript에서 사용됩니다. 하지만 TypeScript로 전환하면 제대로 구현할 수 있나요?이 챌린지에서는 option(key, value)과 get() 두가지 함수를 제공하는 객체(또는 클래스) 타입을 구현해야 합니다. 현
문제 링크배열 T를 사용하고 마지막 요소를 반환하는 제네릭 Last<T>를 구현합니다.length를 활용한 풀이도 있었다.T에는 length-1개의 요소가 있으므로 \[any, ...T]의 length 인덱스의 값을 가져오는 방식이다.이 방식은 첫 번째 예시인 L
문제 링크배열 T를 사용해 마지막 요소를 제외한 배열을 반환하는 제네릭 Pop<T>를 구현합니다.Last of Array처럼 number\[]와 같은 값이 들어올 때를 대비해서 이런 코드를 작성했다해당 반례는 다음과 같다추천 풀이도 내 풀이에서 number를 대응
문제 링크Type the function PromiseAll that accepts an array of PromiseLike objects, the returning value should be Promise<T> where T is the resolved re
문제 링크때때로 유니온 타입의 특정 속성을 기준으로 조회할 수도 있습니다.이 챌린지에서는 유니온 타입 Cat | Dog에서 공통으로 사용하는 type 필드를 기준으로 해당하는 타입을 얻고자 합니다. 다시 말해서, 다음 예시에서는 LookUp<Cat | Dog, '
문제 링크정확한 문자열 타입이고 시작 부분의 공백이 제거된 새 문자열을 반환하는 TrimLeft<T>를 구현하십시오.대부분의 풀이가 비슷했다템플릿 리터럴 타입을 이용해 조건을 확인했다
문제 링크정확한 문자열 타입이고 양쪽 끝의 공백이 제거된 새 문자열을 반환하는 Trim<T>를 구현하십시오.extends문에서 유니온 타입을 쓸 생각은 차마 못한 것 같다.아름다운 답이다https://github.com/type-challenges/typ
문제 링크문자열의 첫 글자만 대문자로 바꾸고 나머지는 그대로 놔두는 Capitalize<T>를 구현하세요.이 풀이와 대게 유사했다템플릿 리터럴 타입을 이용한 추론에서, extends string을 하면 첫 글자만 할당이 된다.
문제 링크문자열 S에서 From를 찾아 한 번만 To로 교체하는 Replace<S, From, To>를 구현하세요.From이 빈 값일 경우 start에 첫 글자 이후에 값이 들어가게 되어 From이 빈 값일 때의 분기처리를 해줬다이런 식으로 분기처리를 할 수 있었
문제 링크주어진 문자열 S에서 부분 문자열 From을 찾아 모두 To로 교체하는 제네릭 ReplaceAll<S, From, To>을 구현하세요.Replace의 변형 문제이다.만약 First, Last 를 사용하는 분기가 참인 경우,ReplaceAll의 제네릭에 $
문제 링크함수 타입 Fn과 어떤 타입 A가 주어질 때 Fn의 인수와 A를 마지막 인수로 받는 Fn과 동일한 함수 유형인 G를 생성하세요.infer 타입으로 인자를 추론 후, 그것을 라벨링된 튜플에 넣어줬다빌트인 타입으로 푼 방식도 존재했다라벨링된 튜플(https
문제 링크주어진 유니언 타입을 순열 배열로 바꾸는 Permutation 타입을 구현하세요.분배 법칙을 쓰기 위해 유니온 타입인 U를 지정해줬다. 또, 사용처에서 U를 건들이지 못하도록 구현체를 덮는 값을 실제 타입으로 지정하였다.never 분기처리를 하지 않으면 값이
문제 링크\`Stringstring의 length로는 직접적인 길이에 접근이 불가능하다.(string\['length']의 타입으로 접근하면 number가 나온다)하지만 배열의 length는 직접적인 길이에 접근이 가능하다. 그래서 재귀적으로 배열의 길이를 지정해주었다
문제 링크주어진 배열을 플랫한 배열 타입으로 바꾸는 Flatten 타입을 구현하세요.shift 타입을 만들어 푼 사람도 있었다.https://github.com/type-challenges/type-challenges/issues/1314
문제 링크주어진 인터페이스에 새로운 필드를 추가한 object 타입을 구현하세요. 이 타입은 세 개의 인자를 받습니다.mapped type을 이용하여 구현하였다. U 제네릭을 잘 사용하기 위해 타입 제한을 두었다.조금 더 간결한 풀이다. keyof any로 U에 대한
문제 링크number, string, 혹은 bigint을 받는 Absolute 타입을 만드세요. 출력은 양수 문자열이어야 합니다.대부분의 풀이가 비슷했다리터럴 타입을 사용했다.리터럴 타입을 통해 infer를 사용하면 string이 할당된다.
문제 링크문자열 인수를 입력받는 String to Union 유형을 구현하세요. 출력은 입력 문자열의 Union type이어야 합니다.튜플타입으로 변환하는 풀이이다그러나 이 방식은 사용처에서 쓸데없는 제네릭이 노출되므로 별로 선호하는 방식은 아니다.https:
문제 링크 문제 두 개의 타입을 새로운 타입으로 병합하세요. 두번째 타입의 Key가 첫번째 타입을 덮어씁니다(재정의합니다) 내 풀이 mapped 타입에서 분기 처리를 통해 구현했다. 다른 사람의 풀이 이런 방식의 풀이법도 존재한다 유사 풀이 같은 풀이도
문제 링크camelCase나 PascalCase를 kebab-case 문자열로 수정하세요.FooBarBaz -> foo-bar-baz대문자로 시작되는 글자들을 tuple 형태로 분리하고,'-'로 join하는 타입을 만들어 구현했다SplitByLowerCase에 첫 글자
문제 링크O & O1의 차이점인 객체를 가져옵니다두 객체 키의 차집합을 구해서 그걸 mapped 타입에서 사용함이 풀이에서는 이렇게 제시를 한다https://www.typescriptlang.org/docs/handbook/2/everyday-types.htm
문제 링크Python의 any function을 타입 시스템으로 구현하세요배열을 사용하고 배열의 요소가 참이면 true를 반환합니다. 배열이 비어 있으면 false를 반환합니다Falsy에는 false로 평가될 수 있는 값을 정의 했다빈 배열 대신, Record<s
문제 링크input type으로 T를 받는 IsNever type을 구현하세요. 만약 T의 유형이 never으로 확인되면 true를 반환하고 아니면 false를 반환합니다일단 내가 이해한 바는 이렇다extends에 제네릭이 오고, 그 제네릭에 union 타입이 오면 분
문제 링크T를 입력으로 받고, T가 Union 유형으로 확인되는지 여부를 반환하는 IsUnion을 구현하세요T를 분배법칙으로 사용하기 위해 제네릭을 사용하는 타입을 분리했다.다만, never는 분배법칙 적용이 되지 않으므로 사전에 분기처리를 해주었다.Exclude<
문제 링크union type에 있는 키를 바꾸고, 만약 그 키가 일부 타입에 없으면 바꾸지않는 ReplaceKeys 타입을 구현해라. 이 타입은 제네릭 3개를 받는다.Implement a type ReplaceKeys, that replace keys in union
문제 링크객체 유형에서 인덱스 시그니처를 제외하는 RemoveIndexSignature<T>를 구현하세요정확하게는 string|number|symbol이 인덱스 시그니쳐만약 R이 index-signiture라면, string extends R,number exte
문제 링크PercentageParser을 구현하세요. /^(+|-)?(\\d\*)?(\\%)?$/ 정규식에 따라 T를 일치시키고 3개의 일치 요소를 얻습니다 구조는 더하기 혹은 빼기, 숫자,단위와 같아야 합니다. 일치 요소가 없다면, 기본값은 빈 문자열입니다.무턱대고
문제 링크string에서 특정한 Char를 없애라Drop a specified char from a string.infer을 사용해 C와 같으면 Result에 넣지 않는 방식으로 타입을 구현했다.다른 풀이가 있었다.항상 다른 깔끔한 풀이가 존재하는 것 같다.https&
문제 링크숫자(항상 양수이다)를 받는 타입이 주어진다. 그 타입은 1 작은 number를 반환해야 한다Given a number (always positive) as a type. Your type should return the number decreased by o
문제 링크T에서 U에 할당가능한 타입을 가진 프로퍼티의 세트를 골라라.From T, pick a set of properties whose type are assignable to U.mapped type에서의 as를 사용해 T\[R]이 U에 할당가능하면 R을 사용하고
문제 링크 문제 내 풀이 다른 사람의 풀이 관련 개념 참고자료
문제 링크유사한 문제 풀이(StartsWith)두 정확한 string 타입을 받고 T가 U로 끝나는지를 반환하는 타입 EndsWith<T, U>를 구현하라Implement EndsWith<T, U> which takes two exact string type
문제 링크두 개의 타입 인수 T와 K를 사용하는 PartialByKeys<T, K>를 구성하세요.K는 옵셔널하며 T의 프로퍼티로 이루어진 유니언 타입을 지정할 수 있습니다. K를 제공하지 않는다면 Partial<T>와 같이 모든 프로퍼티를 옵셔널하게 만들어야
문제 링크유사한 문제 풀이(타입 챌린지 2757 - PartialByKeys)T와 K를 제네릭으로 받는 RequiredByKeys<T, K>를 구현하라T의 프로퍼티 모음인 K는 required여야 한다. 만약 K가 주어지지 않으면 일반 Required<T>
문제 링크T 안에 있는 프로퍼티를 바꿀 수 있게 하는(readonly가 아닌) 타입인 Mutable<T>를 구현하라Implement the generic Mutable<T> which makes all properties in T mutable (not re
문제 링크T에서 U에 할당할 수 없는 프로퍼티를 골라라.From T, pick a set of properties whose type are not assignable to U.mapped 타입 중 as를 이용해 선별적으로 사용하는 방식을 사용한다.대부분의 풀이가 비슷
문제 링크Object.entries의 타입 버전을 구현해라 Implement the type version of Object.entriesT 대신 RT라는 제네릭을 별도로 선언해주었다.RT 대신 T를 사용할 경우 optional 프로퍼티인 RT\[U]를 하면 undef
문제 링크타입 버전의 Array.shift를 구현하라Implement the type version of Array.shiftinfer를 사용한 단순한 구현이다infer \_ 말고 any를 사용한 풀이가 왕왕 보였다.
문제 링크string 타입만 포함하는 튜플 타입 T와 type이 주어지면, 객체를 재귀적으로 만들어라.Given a tuple type T that only contains string type, and a type U, build an object recursivel
문제 링크Array.reverse의 타입 버전을 구현하라Implement the type version of Array.reverse귀납의 마지막 경우 빈 배열,귀납의 마지막 이전의 경우 \[첫 번째 타입], 귀납의 두 번째 마지막 이전의 경우 \[두 번째 타입,첫 번
문제 링크lodash의 \_.flip을 구현해라FlipArguments<T>는 함수 타입 T를 필요로하고, 같은 리턴 타입이지만 파라미터가 뒤집어진(reverse된) 함수를 반환한다Implement the type version of lodash's \_.flip
문제 링크사용처에서 DepthArr 제네릭 사용을 제한하기 위해 FlattenDepthImplement을 구현했다.배열을 분해하기 위해 First의 타입을 조사 후, 배열이라면 재귀적으로 넣어주고, 배열이 아니라면 해당 값을 배열로 감싸주어 spread연산자를 사용했다
문제 링크Block,Element,Modifier 방법론은 css 클래스에 있어 유명한 네이밍 컨벤션이다예를 들어, btn같은 컴포넌트는 block으로, btn\_\_price같이 블록에 의존하는 것은 element로, btn--big나 btn\_\_price--war
문제 링크이진 트리 중위 순회의 타입 버전을 구현하라Implement the type version of binary tree inorder traversal.단순 중위 순회 문제이다.
문제 링크just-flip-object의 타입을 구현하라.Implement the type of just-flip-object문자열 리터럴 타입을 이용해서 flip을 구현했다T\[R]의 타입이 문자열에 할당가능한지를 확인한다해당 풀이제네릭 제한에 Record를 걸어두니
문제 링크숫자 T를받고 그것의 피보나치 수에 해당하는 값을 리턴하는 Fibonacci<T>를 구현하라순서는 다음과 같이 시작한다: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...Implement a generic Fibonacc
문제 링크S에서 가져온 문자를 최대 1번 사용하는 문자열 조합을 리턴하는 타입 AllCombinations<S>를 구현하라Implement type AllCombinations<S> that return all combinations of strings wh
문제 링크이 문제에서 T > U와 같은 GreaterThan<T, U>를 구현해야 합니다.음수는 고려하지 않습니다In This Challenge, You should implement a type GreaterThan<T, U> like T > UNegati
문제 링크이 도전에서, 당신은 T와 U가 튜플형태인 Zip<T, U> 타입을 구현해야한다.In This Challenge, You should implement a type Zip<T, U>, T and U must be Tuple간단한 배열 재귀형태의 문제
문제 링크타입 T를 받고 T가 튜플 타입인지 확인하는 IsTuple 타입을 구현하라Implement a type IsTuple, which takes an input type T and returns whether T is tuple type.반례들을 막기 위해 일단
문제 링크lodash를 아시나요? Chunk는 lodash에 있는 매우 유용한 함수입니다.이제부터 Chunk를 구현합시다.Chunk<T, N>는 두 가지 필수 파라미터를 받습니다. T는 tuple이여야하고, N은 1 이상의 정수여야 합니다.Do you know l
문제 링크일반 자바스크립트 함수 Fill을 타입으로 구현하라당신이 볼 수 있듯이, Fill<T, N, Start?, End?>은 Fill은 4가지 인자를 받습니다.T와 N은 필수 인자이며, Start와 End는 옵셔널 인자입니다. 이러한 인자를 위한 요구사항은 다
문제 링크유사한 문제 풀이 링크정확한 문자열 타입이고 끝부분의 공백이 제거된 새 문자열을 반환하는 Trim<T>를 구현하십시오.단순한 문자 재귀 문제이다.
문제 링크Lodash.without의 타입버전을 구현하라Without은 배열 T를 받고 숫자나 배열 U를 받는다.그리고 U의 요소가 없는 배열을 반환한다.Implement the type version of Lodash.without, Without<T, U> t
문제 링크Math.trunc의 타입 버전을 구현하라. 그것은 string과 number를 받고 모든 소수점을 없앤 정수 부분을 반환한다Implement the type version of Math.trunc, which takes string or number and
문제 링크타입 버전의 Array.indexOf를 구현하라.indexOf<T, U>는 배열 T와 any 형태의 U를 받고, T에 있는 첫번째 인덱스를 반환한다Implement the type version of Array.indexOf, indexOf<T, U
문제 링크타입 버전의 Array.join을 구현하라. Join<T,U>는 배열 T를 받고, string이나 number인 U를 받는다. 그리고 U로 붙여진 배열 T를 반환한다Implement the type version of Array.join, Join<
문제 링크타입 버전의 Array.lastIndexOf를 구현하라. LastIndexOf<T, U>는 배열 T를 받고, any 형태의 U를 받는다. 그리고 배열 T에서 있는 U의 마지막 인덱스를 반환하라Implement the type version of Array
문제 링크객체 T에 있는 타입을 주어진 형태의 R 타입에 의해 정의된 다른 타입으로 바꾸는 MapTypes<T, R>를 구현하라.Implement MapTypes<T, R> which will transform types in object T to diffe
문제 링크]()주어진 길이의 tuple을 만들어라Construct a tuple with a given length.우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.간단한 재귀 형태이다.문제에서 명시한 1000 제한을 뛰어넘은 풀
문제 링크우리는 가끔 숫자 범위에 제한을 두고 싶다...Sometimes we want to limit the range of numbers...우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.ver 1은 제네릭을 순환해서 반환하
문제 링크문자열 배열이 주어지면, 순열과 조합을 수행해라Given an array of strings, do Permutation & Combination.우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.분배용인 D와 유니온을 지
문제 링크중복되지 않은 요소를 가진 배열을 받고, 모든 가능한 순열을 반환한다.순열은 배열에서 기존 요소의 순서 변경 없이 일부 요소를 제거하거나 아무 요소도 제거하지 않은 배열에서 오는 순서이다. Given an array of unique elements, retu
문제 링크S가 중복된 문자를 포함하고 있는지 반환하는 타입 CheckRepeatedChars<S>를 구현하시겠습니까?Implement type CheckRepeatedChars<S> which will return whether type S contains
문제 링크문자열 s를 받고, 거기서 첫 번째로 반복되지 않는 문자를 찾은 후, 그 인덱스를 반환하라.만약 존재하지 않는다면 -1를 반환한다. Given a string s, find the first non-repeating character in it and retu
문제 링크당신은 URL 파라미터 문자열을 유니온 타입으로 파싱하는 타입 레벨의 파서를 구현해야 한다.You're required to implement a type-level parser to parse URL params string into an Union.우선 사
문제 링크배열로 표시되는 GetMiddleElement 방법을 구현함으로써, 배열의 가운데 요소를 가져라 Get the middle element of the array by implementing a GetMiddleElement method, represented
문제 링크대상 배열 에서 오직 한 번만 나타나는 요소를 찾아라Find the elements in the target array that appear only once.우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.사용처에서 n
문제 링크 CountElementNumberToObject로, 배열에 있는 모든 아이템의 발생 수를 얻어 객체에 넣어 반환하라With type CountElementNumberToObject, get the number of occurrences of every ite
문제 링크T는 number를 상속하고, 만약 T가 정수라면 그것을 반환하고 그렇지 않다면 never를 반환하는 타입 Integer<T>을 완성하라Please complete type Integer<T>, type T inherits from number, i
문제 링크리터럴 (라벨 타입)을 원시 타입으로 바꾸어라.Convert a property of type literal (label type) to a primitive type.우선 배열과 객체를 제외한 모든 타입은 그대로 반환하게 구현하였다.객체일 경우 mapped
문제 링크객체의 모든 파라미터(그리고 하위의 객체들을 재귀적으로) 변할 수 있게 만드는 DeepMutable<T>를 구현하라Implement a generic DeepMutable<T> which make every parameter of an object
문제 링크list의 모든 요소가 두 번째 파라미터와 모두 같다면 true를, 안맞는 것이 하나라도 있다면 false를 반환하라.Returns true if all elements of the list are equal to the second parameter pass
문제 링크원시 타입 또는 유니온 원시 타입인 Predicate과 Predicate의 요소로 포함되는 배열을 반환하고, 배열 T를 가지는 Filter<T, Predicate> 타입을 구현하세요.간단한 문제이다. 재귀적으로 P를 확장 가능한지 아닌지를 판단해 반환하는
문제 링크패턴 문자열 P와 텍스트 문자열 T가 주어지면,T에서 P가 (0-index 기반에서) 있는 모든 곳을 포함하는 배열을 반환하는FindAll<T, P>를 구현하라.Given a pattern string P and a text string T, implem
문제 링크복수의 수정키를 결합하되, 같은 수정 키 조합은 나오면 안된다.제공된 ModifierKeys에서, 이전 값의 우선 순위는 뒤에 있는 값의 우선순위보다 높다;cmd ctrl은 괜찮지만, ctrl cmd는 허용되지 않는다.Combine multiple modifi
문제 링크제니릭 튜플 타입 T extends unknown\[]가 주어지면, T의 모든 순열을 유니온으로써 만드는 타입을 구현하라.Given a generic tuple type T extends unknown\[], write a type which produces
문제 링크튜플에서 처음 나온 나온 S를 R로 바꾸어 반환하는 ReplaceFirst<T, S, R>를 구현하라.만약 S가 T에 없다면, 결과는 T여야 한다.Implement the type ReplaceFirst<T, S, R> which will repla
문제 링크 The transpose of a matrix is an operator which flips a matrix over its diagonal; that is, it switches the row and column indices of the matrix
문제 링크주어진 Json 스키마에 상응하는 타입스크립트 타입을 반환하는 JSONSchema2TS를 구현하라Implement the generic type JSONSchema2TS which will return the TypeScript type correspondin
문제 링크 문제 숫자가 주어지면, 그것의 제곱을 리턴하는 타입을 구현하라 Given a number, your type should return its square. 내 풀이 우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했
문제 링크숫자 N이 주어지면, N번째 삼각수를 찾아라, 예) 1+2+3+...+NGiven a number N, find the Nth triangular number, i.e. 1 + 2 + 3 + ... + N우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위
문제 링크집합 2개(union)가 주어지면, 그것의 카르테시안 프로덕트를 반환하라.Given 2 sets (unions), return its Cartesian product in a set of tuples단순 분배법칙만으로 해결이 될 수 있는 문제이다.T와 U를 분
문제 링크가변 적인 수의 타입을 새로운 타입으로 병합하라. 만약 key가 중복된다면, 그 key의 value는 유니온 타입으로 병합되어야 한다.Merge variadic number of types into a new type. If the keys overlap, i
문제 링크T에서 중복되는 멤버를 포함하는지를 반환할 CheckRepeatedChars<T>를 구현하라Implement type CheckRepeatedChars<T> which will return whether type T contains duplicate
문제 링크주어진 타입 T에서 \_로 시작하는 키를 지우세요Remove the key starting with \_ from given type T.간단한 문제이다.mapped type을 이용해 T를 순회하면서 {R:TR}형태로 반환한다.이때, as를 이용해 R을 재매핑
문제 링크인터페이스에서 prop 값을 추출하는 타입을 구현하라.그 타입은 두 인자를 받는다.반환 값은 prop 값과 함께 있는 객체이다.Implement a type that extract prop value to the interface. The type takes
문제 링크두 인자를 받는 유틸리티 타입 Omit처럼, DeepOmit을 구현하라 Implement a typeDeepOmit, Like Utility types Omit, A type takes two arguments.mapped type을 사용했다.key는 K와 같
문제 링크숫자가 홀수면 true를 반환하라return true is a number is odd세가지 조건을 확인했다.1) 소수점이 있는가? -> 맞다면 false 반환2) e 형태의 표기법인가? -> 맞다면 false 반환3) 문자열로 나타냈을때 1,3,5,7,9로
문제 링크하노이의 탑을 시뮬레이션하라.타입은 고리의 숫자를 입력 값으로 받아 추가적인 C를 이용해서 A로부터 B로 가는 고리의 과정이 단긴 배열을 반환한다.각 나열은 From에서 To로 움직이는 값을 나타내는 \[From,To] 문자열 쌍이여야 한다. Simulat
문제 링크Given a number N, construct the Pascal's triangle with N rows.N이 주어지면, N행의 파스칼의 삼각형을 만들어라우선 사용처에서 구현용 제네릭을 사용하지 못하게 하기 위해 구현과 실제 타입을 분리했다.만약 Resu
문제 링크두 배열(T와 U)의 길이를 비교하는 CompareArrayLength를 구현하라 Implement CompareArrayLength to compare two array length(T & U).T와 U의 길이가 같다면 0,재귀적으로 호출했을 때 T가 먼저
문제 링크 문제 키에 유니온 타입이 들어간 Record를 사용하는 것은 유니온의 일부를 사용하는 객체를 허락하지 않는다. Using a Record with union types as keys doesn't allow you to make an object wit
문제 링크문자열 튜플 사이에서 가장 긴 공통 접두사를 반환하는 LongestCommonPrefix를 작성하라.만약 공동 접두사가 없다면 빈 문자열 ""를 반환하라. Write a type, LongestCommonPrefix that returns the longes
문제 링크정행렬의 대각합은 정행렬의 주대각에 있는 요소의 합이다.그러나, 타입 시스템에서 그 합을 계산하는 것은 어렵다.간단하게, 주대각에 있는 요소를 유니온 타입으로 반환하라. The trace of a square matrix is the sum of the el
문제 링크주어진 문자열이 알파벳인지 구분하라Determine if the given letter is an alphabet.S가 string과 같은지 판별한 후, 맞다면 false를 반환한다.string이 아니라면 S가 Lowercase<S>&Uppercase&l
문제 링크모든 문자를 대문자로 바꾸는 Uppercase<T>를 구현하라Implement Uppercase<T>, convert all letter to uppercaseUppercase를 사용하지 않고 푸는 문제이다매 문자를 재귀적으로 순회하여Head가 a~
문제 링크때때로 당신은 문자열 리터럴 타입이 정해진 타입인지 결정하고 싶을 수 있다. 예를 들어 당신이 클래스 ID로 식별되는 타입이 고정된 문자열 리터럴 타입인지 확인하고 싶을 때다. 이것은 고정되어져야 하기 때문에, 다음 타입들은 false로 결정되어야 한다.nev
문제 링크Vue 같은 타입 서포팅의 간단한 버전을 구현하라.(Vue.extends나 defineComponent와 유사한) 함수명 SimpleVue에 의해, computed와 method 내부의 this 타입을 적절하게 추론해야한다.data는 this context를
문제 링크커링은 다양한 인자를 갖는 함수를 하나의 인자를 갖는 함수의 나열로 바꾸는 기술을 의미한다Currying으로 넘어가는 함수는 다양한 인자를 가질 수 있고, 당신은 올바르게 타이핑 해야한다.이 챌린지에서, 커링된 함수는 오직 한 번에 하나의 인자를 받는다. 모든
문제 링크상향된 유틸타입 UnionToIntersection<U>을 구현하라Implement the advanced util type UnionToIntersection<U>풀이관련 ts 문서(https://www.typescriptlang.org/
문제 링크모든 필수 필드를 남기는 고급 유틸 타입 GetRequired<T>를 구현하라Implement the advanced util type GetRequired<T>, which remains all the required fieldsRequired인
문제 링크모든 옵셔널 필드를 남기는 상급 유틸 타입 GetOptional<T>를 구현하라.Implement the advanced util type GetOptional<T>, which remains all the optional fieldsGet Requ
문제 링크모든 필수 키를 유니온으로 뽑아내는 상급 유틸 타입 RequiredKeys<T>를 구현하라라Implement the advanced util type RequiredKeys<T>, which picks all the required keys into
문제 링크모든 옵셔널 키를 유니온으로 뽑아내는 상급 유틸 타입 OptionalKeys<T>를 구현하라Implement the advanced util type OptionalKeys<T>, which picks all the optional keys into
문제 링크각 문자열 단어의 첫 문자를 대문자로 하고 나머지를 그대로 놔두는 CapitalizeWords<T>를 구현하라.Implement CapitalizeWords<T> which converts the first letter of each word of
문제 링크스네이크 케이스를 카멜케이스로 바꾸는 CamelCase<T>를 구현하라 Implement CamelCase<T> which converts snake_case string to camelCase.우선 스네이크 케이스를 정의했다.스네이크 케이스는 각
문제 링크C언어에는 함수 printf가 있다: 이 함수는 포매팅이 된 무언가를 프린트하도록 한다.포맷은 다음과 같다:이 챌린지는 문자열을 입력받아 %d나 %f 같은 플레이스 홀더 포맷을 추출한다. 예를 들어, 만약 입력 문자열이 "The result is %d."라면,
문제 링크때때라 당신이 any 타입을 가지고 있는지 판별하는 것은 유용하다. 이것은 특히 any value를 export 할 수 있는 서드 파티 타입스크립트 모듈과 함께 작업할 때 유용하다. 이것은 또한 implicitAny 체크를 하지 않을 때에도 알면 좋다.그래서,
문제 링크lodash에서 get 함수는 자바스크립트의 중첩 값에 접근하기 위한 꽤 편리한 도우미이다.그러나, 타입스크립트에 관해서, 이것처럼 사용하면 타입 정보를 잃을 수 있다. 다가오는 템플릿 리터럴 타입 기능과 함께, 적절하게 get 타입핑은 가능해 질 수 있다.
문제 링크Number.parseInt와 같이 문자열 리터럴를 숫자로 바꿔라Convert a string literal to a number, which behaves like Number.parseInt.문자열이 number로 추론가능하면 그 값을 반환하고, 아니면 n
문제 링크튜플 T에서 주어진 타입 F의 요소를 걸러내는 타입 FilterOut<T, F>를 구현하라Implement a type FilterOut<T, F> that filters out items of the given type F from the tupl
문제 링크enum은 타입스크립트의 기본 문법이다(자바스크립트에는 존재하지 않는다).이 질문에서 타입은 문자열 튜플을 enum처럼 동작하는 객체로 바꿔야 한다.게다가, 이넘의 속성은 파스칼 케이스가 선호된다.만약 두 번째 인자가 true라면 값은 숫자 리터럴이여야 한다.
문제 링크타입 Format<T extends string>을 구현하라.Implement Format<T extends string> generic.우선 확장이 용이하도록 FormatInformation을 추가했다.string에 %이 들어가면 그 다음 글자를
문제 링크다음과 같이 타입-세이프한 문자열을 join하는 유틸함수를 만들어라: 혹은 대신해서: 한 요소만 넘겨질 때, 우리는 (어떠한 구분자를 추가하지 않고) 원본 요소만 되돌려줘야한다. Create a type-safe string join utility w