TIL: 열거형

Yeongjong Kim·2022년 1월 20일
0

TIL

목록 보기
4/10

enum을 왜사용하는가?

특정한 넘버 혹은 스트링을 타입으로 사용하는 경우가 있다.
아래와 같은 예시가 그에 해당한다.

type ContryCode = 'ko' | 'en' | 'ja' | 'ug';

const code: ContryCode = 'en'

그런데 위처럼 or 연산자로 타입을 정의해 버리면 축약형으로 쓴 ja, ko, en이 무엇을 의미하는지 까먹거나 모를 때가 있다. ug가 어떤 국가를 의미하는지 아는 사람이 있을까? 별로 없을 것이라 짐작한다. ug는 Uganda 우간다 코드다.

이런 문제를 해결하기 위해 어떤 방법을 사용할 수 있을까?

  1. 약어를 사용하지 않는 것
type ContryCode = 'korea' | 'english' | 'japanese' | 'uganda';

const code: ContryCode = 'korea';
  1. 풀네임 변수를 사용하는 것
const korea = 'ko';
const english = 'en';
const japanese = 'ja';
const uganda = 'ug';

type ContryCode = typeof korean | typeof english | typeof japanese | typeof uganda
  1. enum
enum ContryCode {
  ko = 'korean',
  en = 'english',
  ja = 'japanese',
  ch = 'chinese',
  sp = 'spanish',
}
const code: ContryCode = LanguageCode.korean

마치 객체의 key가 ko 값이 korean안 느낌이 든다. 실제로 이러한 원리이며, 값을 변경할 수 없도록 freezon 된 객체를 사용한다.

소결론

원래 뜻을 유지하며, 짧은 코드로 가독성을 높이고 싶은 경우 enum을 사용해보자.

profile
Front 💔 End

0개의 댓글