열거형 타입

박성훈·2023년 12월 7일

TypeScript

목록 보기
1/6
post-thumbnail

열거형 (Enum) 타입

Enum 타입은 타입스크립트에만 존재하는 타입이다.

enum UserRle {
	ADMIN,
    USER,
    GUEST,
}

위와 같이 여러가지 값들을 열거해 놓고 사용할 수 있는 타입인데, Dictionary 같은 역할을 해주는 타입이라고 이해했다.

enum UserRole {
	ADMIN : 0,
    USER : 1,
    GUEST : 2,
}

위 처럼, 각 값에 number 값을 할당해주었다면,

const user1 = {
	name : "kimcoding",
    role : UserRole.ADMIN, // 0
}

const user2 = {
	name : "parkHacker",
    role : UserRole.USER // 1
}

const user3 = {
	name : "leePerson",
    role : UserRole.GUEST // 2
}

이런식으로, 각 객체의 프로퍼티 값을 보다 안전하고 직관적으로 할당 및 관리할 수 있다.

자동할당

Enum 타입은 상황에 따라 자동할당을 해줄 수 있다.

enum UserRole {
	ADMIN, // 0
    USER,  // 1
    GUEST, // 2
}

위의 코드처럼, enum 멤버에 아무런 값을 설정하지 않았을 경우,

Enum 타입은 위에서부터 자동으로 0부터 오름차순으로 값을 자동할당해준다.

enum UserRole {
	ADMIN = 10
    USER,  // 11
    GUEST, // 12
}

또한, 가장 상단의 멤버에 값이 할당되어 있다면, 그 값을 기준으로 1씩 증가하며 나머지 값에 할당해준다.

enum UserRole {
	ADMIN, // 0
    USER = 10,
    GUEST, // 11
}

중간에 있는 enum 멤버에만 값이 할당되었다면, 그 멤버 기준 위에 있는 멤버들은 0으로 할당되고, 아래에 있는 멤버들은 마찬가지로 1씩 증가된 값이 할당된다.

문자열 Enum

Enum 타입은 꼭 number타입이 아닌 String 값도 할당이 가능하다.

enum UserRole {
	ADMIN : 0,
    USER : 1,
    GUEST : 2
}

enum Language {
	korean = "ko",
    english = "en",
}


const user1 = {
	name : "kimcoding",
    role : UserRole.ADMIN, // 0
    language : Language.english // "en"
}

위처럼, 문자열로 이루어진 Enum 타입을 선언하여, 각 객체의 프로퍼티를 효과적으로 관리할 수 있다.


출처 : 인프런 - 한 입 크기로 잘라먹는 타입스크립트

profile
2년차 프론트엔드 개발자입니다.

0개의 댓글