• EnumType(열거형)
    • 상수들을 관리하기 위한 객체로 상수의 집합을 정의

    • 일반 객체와 달리 열거형은 프로퍼티의 변경을 허용하지 않음

    • 열거형의 프로퍼티는 기본적으로 숫자, 문자만 허용

    • 열거형을 이용하면 상수의 수를 제한할 수 있고 코드의 가독성을 높일 수 있음

    • 예시 코드

      // 열거형을 사용하지 않은 경우
      const korean = 'ko'
      const english = 'en'
      const japanese = 'ja'
      const chinese = 'zh'
      const spanish = 'es'
      
      type LanguageCode = 'ko' | 'en' | 'ja' | 'zh' | 'es'
      
      const code: LanguageCode = korean
      
      // 열거형을 사용하는 경우
      enum LanguageCode {
      	korean = 'ko',
      	english = 'en',
      	japanese = 'ja',
      	chinese = 'zh'
      	spanish = 'es'
      }
      
      const code: LanguageCode = LanguageCode.korean
      
      // 열거형의 자동 값 지정
      enum ArrowKey {
      	Up = 1,
      	Down,
      	Left = 20,
      	Right
      }
      // Up = 1, Down = 2, Left = 20, Right = 21 로 자동 지정
      // 하지만 enum이 const로 지정되는 경우 자동 지정 불가능
      // 보통 key로 value를 꺼내지만 반대로 value를 통해 key 가져올 수 있음(리버스 매핑)
      // const enum은 또한 리버스 매핑도 불가능