본문 바로가기
Typescript

이넘, 제네릭

by alotus 2024. 8. 21.
728x90
반응형

- 이넘 (enum)

열거형을 정의하는 것으로 열거형은 관련된 상수 집합을 그룹화하여 가독성 및 유지보수성을 높일 수 있다.

  • 숫자 열거형 (Numeric Enum)
    • 자동으로 숫자 값이 할당되며, 0부터 시작
  • 문자열 열거형 (String Enum)
    • 명시적인 문자열 값을 통해 명확한 값을 가지며 예측 가능
  • 상수 열거형 (Const Enum)
    • 컴파일 할 때 상수로 대체되며, 런타임에는 존재하지 않음
    • 성능 최적화 시 유용
  • 홉합 열거형 (Heterogeneous Enum)
    • 숫자와 문자열을 혼합하여 사용 (단, 혼란을 초래할 수 있으므로 주의 필요)
// 숫자 열거형 (Numeric Enum)
enum Num {
	Up = 1, // 첫 번째 멤버에 1을 부여하여 각 멤버는 0이 아닌 1부터 시작하는 숫자 값을 가지게 된다.
    Down,
    Left,
    Right
}

console.log(Num.Down); // 2 멤버의 숫자값을 받아온다.
console.log(Num[1]); // Up 숫자로 이름을 얻을 수도 있다.

// 문자열 열거형 (String Enum)
enum Str {
	Seoul = "SEOUL",
    Busan = "BUSAN",
}
console.log(Str.Seoul);

// 상수 열거형 (Const Enum)
const enum Status {
	Success = 1,
    Failed,
}
console.log(Status.Success);

// 홉합 열거형 (Heterogeneous Enum)
enum Mixed {
	Success = "SUCCESS",
    Error = 404,
}
console.log(Mixed.Success);
console.log(Mixed.Error);

 

 

- 제네릭 (Generic)

타입을 미리 지정하지 않고 사용하는 시점에 정의해서 사용하는 문법이다.

// T 대신 직접 지정한 이름도 가능하다.
function func<T>(value: T): T {
	return value;
};
console.log(func(10)); // 10

const arrFunc = <T>(el: T[]): T => el[0];
console.log(arrFunc([1, 2, 3]));

// 인터페이스에서도 가능
interface Inter<T> {
	value: T;
    getValue(): T;
}

const numBox: Inter<number> = {
	value: 1,
    getValue() { return this.value; }
};

 

 

※ 참고 : 수코딩 (https://www.sucoding.kr)

728x90
반응형

'Typescript' 카테고리의 다른 글

설치, 컴파일, 변수 선언 방법  (0) 2024.08.20