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
- thread
- 배치
- 디자인 패턴
- 멀티스레드
- java 정렬
- Parallel Old GC
- JPA
- 타입스크립트
- spring batch
- spring cloud
- 키클락
- saga pattern
- Spring Cloud Netfilx Eureka
- Resilinece4j
- 사가 패턴
- zipkin
- Transaction Pattern
- 생산자 소비자 패턴
- 알고리즘
- Action Pattern
- Serial GC
- 디자인패턴
- Java
- Spring Boot Actuator
- 스프링 배치
- The law of Demeter
- 스레드
- MSA
- 체인 패턴
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 |