typescript

[타입스크립트] enum ??

승딱 2021. 6. 4. 17:29
반응형

enum 이라는게 있는데 어떤 개념인지 그리고 어떨때 사용하는지 알아보고 간단히 정리해봄

 

enum : 연관된 아이템들을 묶어서 표현할수 있는 수단 !!

 

사용법은 enum 키워드 넣고 그냥 쓰면 된다.

안에는 이제 연관된 아이템들을 넣어놓으면은 묶여저서 객체에서 프러퍼티에 접근하듯이 . 을 통해서 사용할수 있게된다.

 

일단 컴파일 된 내용을 한번 보자 

 

보면은 Exenum 이 선언이 되고 즉시실행함수 안에서 값이 할당이 되는 것을 볼수가 있는데 값이 양쪽에 다 매핑이 되는것을 확인할수있다.

 

이렇게 하면 키로 값을 찾을수도 있고 값을 통해서 키를 찾을수도 있다. 

이거를 리버스 매핑 이라고 한다고 한다.

뭐 콘솔로 ExEnum 을 보면 

 

{ '0': 'sleep', '1': 'up', '2': 'down', sleep: 0, up: 1, down: 2 }  // console.log(ExEnum)
1 // console.log(what)

 

이런 값이 찍히는데 객체가 리버스 매핑 형식으로 생긴 모습이다.

 

이때 자동으로 숫자가 순차적으로 매핑된것을 확인 할수 있는데 문자열로 매핑도 가능하다.

문자열은 리버스매핑이 안된거를 확인 할수 있다. 그렇군

 

처음 써보는 거라 의미있게 사용하려면 좀 봐야 될거 같다.

염두해두자 

사용예시

이코드는 액션의 타입을 지정해 주는 코드이다.

이런 비슷부류의 하드코딩이 쓰인다면

enum 을 이용해 묶어주고

액션타입을 지정해주는 코드 // 리듀서 코드

리덕스처럼 많은곳에서 가져다가 쓰는경우에는 이렇게 묶어서 사용하면 유지보수에 좋을거 같다.