반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- typescript
- 크롤링
- BFS
- 자바스크립트
- 수학
- 프로그래머스 레벨 2
- socket
- 프로그래머스
- 알고리즘
- Crawling
- 쉬운 문제
- HTTP 완벽 가이드
- type challenge
- 그래프
- 소켓
- 타입스크립트
- 문자열
- 타입 챌린지
- Node.js
- TCP
- Algorithm
- ip
- 레벨 1
- dp
- javascript
- 백준
- Nestjs
- HTTP
- 가천대
- dfs
Archives
- Today
- Total
kakasoo
TypeScript type level에서의 in의 의미 본문
반응형
interface Person {
name: string;
age: number;
}
type Partial<T> = {
[P in keyof T]?: T[P]; // P will be each key of T
}
type PersonPartial = Partial<Person>; // same as { name?: string; age?: number; }
in키워드는 키 조합의 모든 항목을 반복하는 구문의 일부로 사용된다.
위에서 Partial type은 key of T 이므로 name, age 프로퍼티들이 될 것이고, 그것이 반복된 키-밸류의 객체 타입을 의미한다.
다만 그 키의 값이 ?: 연산자로 optional 하다고 알려주기 때문에 이름의 의미와 같이, Partial하게 정의된다.
type TupleToObject<T extends readonly any[]> = {
[key in T[number]]: key;
}
const tupleNumber = [1, 2, 3, 4] as const;
type tupleNumberToObject = TupleToObject<tupleNumber>; // same as { 1: 1; 2: 2; 3: 3; 4: 4; }
그래서 이런 식으로도 활용이 가능하다.
반응형
'프로그래밍 > TypeScript' 카테고리의 다른 글
배열의 첫 번째 값을 가리키는 타입 (0) | 2023.02.07 |
---|---|
Exclude은 왜 T extends U ? never : T 인가? (0) | 2023.01.27 |
조건에 따라 다른 response type이 추론되게 하기 (0) | 2023.01.24 |
NTuple 타입 정의하기 (0) | 2023.01.21 |
type Push = <T extends any[], value> = […T, value] (0) | 2023.01.20 |