스포일러 주의!
Table of Contents
Easy
4 — Pick
T에서 K 프로퍼티만 선택해 새로운 오브젝트 타입을 만드는 내장 제네릭 Pick<T, K>을 이를 사용하지 않고 구현하세요.
해답 및 코멘트 보기
7 — Readonly
T의 모든 프로퍼티를 읽기 전용(재할당 불가)으로 바꾸는 내장 제네릭 Readonly<T>를 이를 사용하지 않고 구현하세요.
해답 및 코멘트 보기
11 — Tuple to Object
배열(튜플)을 받아, 각 요소를 key/value로 갖는 오브젝트 타입을 반환하는 타입을 구현하세요.
해답 및 코멘트 보기
14 — First of Array
배열(튜플) T를 받아 첫 원소의 타입을 반환하는 제네릭 First<T>를 구현하세요.
해답 및 코멘트 보기
18 — Length of Tuple
배열(튜플)을 받아 길이를 반환하는 제네릭 Length<T>를 구현하세요.
해답 및 코멘트 보기
43 — Exclude
T에서 U에 할당할 수 있는 타입을 제외하는 내장 제네릭 Exclude<T, U>를 이를 사용하지 않고 구현하세요.
해답 및 코멘트 보기
189 — Awaited
Promise와 같은 타입에 감싸인 타입이 있을 때, 안에 감싸인 타입이 무엇인지 어떻게 알 수 있을까요? 예를 들어 Promise<ExampleType>이 있을 때, ExampleType을 어떻게 얻을 수 있을까요?
해답 및 코멘트 보기
268 — If
조건 C, 참일 때 반환하는 타입 T, 거짓일 때 반환하는 타입 F를 받는 타입 If를 구현하세요. C는 true 또는 false이고, T와 F는 아무 타입입니다.
해답 및 코멘트 보기
533 — Concat
JavaScript의 Array.concat 함수를 타입 시스템에서 구현하세요. 타입은 두 인수를 받고, 인수를 왼쪽부터 concat한 새로운 배열을 반환해야 합니다.
해답 및 코멘트 보기
898 — Includes
JavaScript의 Array.includes 함수를 타입 시스템에서 구현하세요. 타입은 두 인수를 받고, true 또는 false를 반환해야 합니다.
해답 및 코멘트 보기
3057 — Push
Array.push의 제네릭 버전을 구현하세요.
해답 및 코멘트 보기
3060 — Unshift
Array.unshift의 타입 버전을 구현하세요.
해답 및 코멘트 보기
3312 — Parameters
내장 제네릭 Parameters<T>를 이를 사용하지 않고 구현하세요.
해답 및 코멘트 보기
Medium
2 — Get Return Type
내장 제네릭 ReturnType<T>을 이를 사용하지 않고 구현하세요.
해답 및 코멘트 보기
3 — Omit
T에서 K 프로퍼티만 제거해 새로운 오브젝트 타입을 만드는 내장 제네릭 Omit<T, K>를 이를 사용하지 않고 구현하세요.
해답 및 코멘트 보기
8 — Readonly 2
T에서 K 프로퍼티만 읽기 전용으로 설정해 새로운 오브젝트 타입을 만드는 제네릭 MyReadonly2<T, K>를 구현하세요. K가 주어지지 않으면 단순히 Readonly<T>처럼 모든 프로퍼티를 읽기 전용으로 설정해야 합니다.
해답 및 코멘트 보기