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
- zipkin
- 알고리즘
- 디자인패턴
- The law of Demeter
- thread
- 체인 패턴
- Parallel Old GC
- Serial GC
- Spring Cloud Netfilx Eureka
- 키클락
- 스레드
- 타입스크립트
- Spring Boot Actuator
- Java
- Action Pattern
- JPA
- Resilinece4j
- saga pattern
- spring batch
- 멀티스레드
- 스프링 배치
- 디자인 패턴
- java 정렬
- MSA
- 생산자 소비자 패턴
- TypeScript
- spring cloud
- 배치
- 사가 패턴
- Transaction Pattern
Archives
- Today
- Total
PSD( Private-Self-Development )
타입스크립트의 열거 타입 과 제네릭 본문
열거 타입
숫자 열거형
초기화되지 않은 열거형이 먼저 나오는 경우
enum Weekdays {
Monday, //0
Tuesday, //1
Wednesday = 5, //5
Thursday, //6
...
}
계산된 맴버: 초기화되지 않은 열거형의 앞에 계산된 맴버는 나오지 못함
function returnNumberFive():number {
return 5;
}
enum Weekdays {
Monday = 1, //1 => 상수 맴버
Tuesday, //2 => 상수 맴버
Wednesday = Monday + Tuesday //3 => 컴파일 타임에서 3이 할당되는 상수 맴버
Thursday = returnNumberFive(), //5 => 런타임에서 값이 할당되는 계산된 맴버
Friday, //?오류 발생
...
}
문자 열거형
모든 맴버를 초기화 해야 함
이종 열거형
열겨타입은 number와 string을 같 이용가능 ⇒ 권장하는 방법은 아님
enum BooleanLikeHeterogeneousEnum {
No = 0,
Yes = "YES",
}
제네릭
클래스의 제네릭
제네릭에서 클래스 타입의 static 멤버를 가질수 없음
class staticExample<T> {
public static staticValue: T; //Error
...
}
함수의 제네릭
컴파일러는 height 이라는 프로퍼티를 가지는지 확신 하지 못함
function getHeight<T> (person: T) {
return person.height; //Error => 실제로 person이 height를 가지고 있어도
}
대체가능한 코드
interface Heightwise {
height: number;
}
function getHeight<T extends Heightwise> (person: T) {
return person.height;
}
const myInfo = {
name: 'yeongae',
height: 170,
};
console.log(getHeight(myInfo));// 170
'Frontend > Typescript' 카테고리의 다른 글
타입스크립트 기타 특성 (0) | 2022.09.29 |
---|---|
타입스크립트 데코레이터 (0) | 2022.09.29 |
타입스크립트의 OOP( 객체 지향 프로그래밍 ) (0) | 2022.09.28 |
타입스크립트의 타입 (0) | 2022.09.28 |
타입스크립트 란? (0) | 2022.09.28 |