반응형
    
    
    
  
                              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 | 
                            Tags
                            
                        
                          
                          - 타입스크립트
- type challenge
- Nestjs
- 문자열
- 크롤링
- dp
- 소켓
- 알고리즘
- 레벨 1
- HTTP
- HTTP 완벽 가이드
- javascript
- TCP
- typescript
- ip
- BFS
- 수학
- 타입 챌린지
- 백준
- 프로그래머스 레벨 2
- 가천대
- 프로그래머스
- Algorithm
- 그래프
- 쉬운 문제
- socket
- Crawling
- Node.js
- 자바스크립트
- dfs
                            Archives
                            
                        
                          
                          - Today
- Total
kakasoo
배열의 Length를 뽑는 타입 본문
반응형
    
    
    
  type Length<T extends any[]> = T['length'];타입 레벨에서의 extends 키워드는 타입 상속을 의미한다.
타입 A가 B를 상속할 때, A는 B의 모든 프로퍼티와 메서드를 상속받아야 하는데, 조건문의 의미로도 쓰인다.
A가 B를 상속받는다는 것은 최소한 A가 B와 같거나, B보다 더 구체적인 ( = 더 많은 프로퍼티를 가진 ) 것이다.
위의 Length는, 생각보다 별 거 아닌 게, 제너릭으로 받은 T는 any[]를 상속받으니 즉 어떠한 배열을 의미한다.
T가 배열이라면 반드시 내부에 length 프로퍼티가 있기 때문에, T[’length’]로 특정 프로퍼티를 뽑을 수 있다.
type Length<T extends any[]> = T['length'];
type A = Length<[1,2,3,4,5]>;
const length: A = 5; // 5가 아닌 경우 compile error를 뱉게 된다.Array의 length property는 그냥 number가 아니라 number literal types다.
number literal type은 1이나 2.5, 3e5 등 특정 값을 의미하는 숫자 타입을 의미한다.
Length는 배열을 받아, 그 배열의 Length를 뽑는 타입이며, 배열의 length type은 number literal type,
즉, 항상 그 시점의 배열 크기를 반환하는 타입이 된다.
반응형
    
    
    
  '프로그래밍 > TypeScript' 카테고리의 다른 글
| NTuple 타입 정의하기 (0) | 2023.01.21 | 
|---|---|
| type Push = <T extends any[], value> = […T, value] (0) | 2023.01.20 | 
| Extract<Type, Union> (0) | 2023.01.18 | 
| 싱글턴(Singleton) 패턴이란? (0) | 2023.01.13 | 
| new (…args): T 타입이란? (4) | 2023.01.03 |