[TypeScript] Enum 타입

kjy0124·2025년 7월 25일
post-thumbnail

🎯 Enum타입이란?

✅ 정의

여러 개의 상수 값에 이름을 부여해 열거형(Enumeration)으로 정의하고 사용할 수 있도록 해주는 타입

✅ 왜 필요할까❓

  • 아래와 같이 숫자로 역할을 구분하면 의미가 불명확하고, 실수할 수 있음
const user1 = {
  name: "KJY", 
  role: 0,// <-- 관리자
}
const user2 = {
  name: "홍길동",
  role: 1, // <-- 일반 사용자
}
  • role의 숫자가 어떤 역할인지 한눈에 알기 어렵고, 코드 가독성이 떨어짐
  • 이런 문제를 해결하기 위해 enum을 활용

🎯 숫자형 Enum

✅ 사용 방법

enum UserRole {
  ADMIN = 0, // 관리자
  USER = 1, // 일반 사용자
  GUEST = 2, // 게스트
}
  • enum 키워드를 사용해 열거형 타입을 선언
  • 중괄호 안에 상수 이름(key)값(value)=로 지정
  • 값을 생략하면 자동으로 0부터 1씩 증가

✅ 사용 예시

const user1 = {
  name: "KJY", 
  UserRole: UserRole.ADMIN
}
const user2 = {
  name: "홍길동",
  UserRole: UserRole.USER
}
const user3 = {
  name: "이순신",
  UserRole: UserRole.GUEST
}
  • role 속성에 숫자를 직접 쓰지 않고, UserRole.ADMIN과 같이 명확한 이름으로 사용 가능
  • 가독성 향상, 의미 전달력 증가, 오타 방지 효과

✅ 값 생략 시 자동 증가

enum UserRole {
  ADMIN, // 0
  USER, // 1
  GUEST, // 2
}
  • 값을 생략하게 되면 아래 사진과 같이 0부터 자동으로 증가
  • 만일 ADMIN10을 주고 코드를 실행하게 되면 그 아래는 11, 12와 같이 자동으로 할당

🎯 문자형 Enum

✅ 사용 방법

enum Language {
  KOREAN = "ko",
  ENGLISH = "en",
}
  • 숫자형 Enum과 동일한 방식으로 enum 키워드로 선언
  • 하지만 문자형 enum은 반드시 값을 명시해야 함

    값을 생략할 수 있는 숫자형 enum과 달리, 문자형은 생략 불가

✅ 사용 예시

const user1 = {
  name: "KJY",
  Language: Language.KOREAN,
};
const user2 = {
  name: "홍길동",
  Language: Language.ENGLISH,
};
const user3 = {
  name: "이순신",
  Language: Language.KOREAN,
};
  • "ko", "en"같은 문자열 값을 직접 쓰는 대신 Language.KOREAN을 사용함으로써 의미가 명확해지고, 코드 자동완성도 가능
  • 실수 및 오타 방지 효과

출처

한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard

profile
개발 공부...

0개의 댓글