일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 타입스크립트
- HTTP
- ip
- 크롤링
- 백준
- Algorithm
- dp
- 레벨 1
- Nestjs
- type challenge
- 쉬운 문제
- 문자열
- socket
- 타입 챌린지
- Crawling
- HTTP 완벽 가이드
- 가천대
- BFS
- 알고리즘
- 수학
- Node.js
- 프로그래머스 레벨 2
- 프로그래머스
- typescript
- 그래프
- dfs
- 자바스크립트
- javascript
- TCP
- 소켓
- Today
- Total
목록type challenge (6)
kakasoo
type IsPartitionSameEntire = T extends P ? P extends T ? true : false : false; type IsUnion = IsPartitionSameEntire extends true ? false : IsPartitionSameEntire extends false ? false : true; 조금 지저분한 풀이긴 하지만, 분산 법칙을 이용해서 푸는 방법이 있다. Equal 타입을 구현하다가 안 것인데, type Equal = X extends Y ? (Y extends X ? true : false) : false; type a5 = Equal; // boolean type a6 = Equal; // boolean Equal을 다음과 같이 X가 Y일 때 Y..
type Falsy = 0 | '' | false | [] | null | undefined; type AnyOf = T extends [] ? false : // 빈 배열일 경우 무조건 false T extends [infer F, ...infer Rest] ? F extends Falsy ? // 맨 앞부터 검사했을 때 Falsy를 만날 경우 AnyOf : // 다음 타입을 검사한다 keyof F extends never ? // 현재 검사 중인 타입 F가 falsy가 아닐 때, 혹시 빈 객체는 아닌지 검사한다. AnyOf: true: never; 간단한 문제였지만 Falsy에 해당하는 값 중 빈 객체를 다루는 것으로 인해 곤혹스러웠다. 자바스크립트의 모든 값들은 객체이기 때문에, 따라서 모든 값의 ..
// type Merge = { // [K in keyof (F & S)]: K extends keyof F ? F[K] : K extends keyof S ? S[K] : never; // } type Merge = { [K in keyof (F & S)]: K extends keyof S ? S[K] : K extends keyof F ? F[K] : never; } 두 객체를 합쳐야 하기 때문에 F & S 의 모든 key를 뽑고, 그 키가 어느 쪽인지에 따라 S, F에 인덱스로 주어지게 했다. 주석처리되어 있는 부분은 F에서 먼저 그 키를 찾는데, 이 문제는 키가 중복될 경우 나중에 들어온 S를 기준으로 하기 때문에 주석처리 되지 않은 쪽 Merge가 올바른 해답이다.
타입 챌린지의 문제인데, 미디움에 있었다. 끔찍한 수준의 난이도인데 이게 왜 medium인지 모르겠다. 아래에 문제를 이해하기 위해 필요한 지식과 해석 순서를 모두 기재하였으니 참고하도록 하자. 문제, 그리고 필요로 하는 결과 type cases = [ Expect, Expect, Expect, Expect, Expect, ] 분산적 조건 타입 type Singular = T extends never ? true : false; type IfAnySingular = Singular; // boolean 타입스크립트 핸드북 - 분산적 조건 타입 Documentation - Conditional Types Create types which act like if statements in the type sys..
[Feature request]type level equal operator · Issue #27024 · microsoft/TypeScript Search Terms Type System Equal Suggestion T1 == T2 Use Cases TypeScript type system is highly functional. Type level testing is required. However, we can not easily check type equivalence. I want a... github.com 글에서 Equals을 어떻게 설명하는지 나와있다. 다만, 완벽한 정의가 아니고, 대부분의 상황에 적합한 것이기 때문에 유틸리티 타입에 포함되지는 않는 것 같다. export type Equ..
type Chainable = { option(key: K, value: P): Chainable; get(): T; } const result1 = a .option('foo', 123) .option('bar', { value: 'Hello World' }) .option('name', 'type-challenges') .get() const result2 = a .option('name', 'another name' // @ts-expect-error .option('name', 'last name') .get() const result3 = a .option('name', 'another name') // @ts-expect-error .option('name', 123) .get() type E..