[TIL] Typescript - enum vs object literal

sooyoung choi·2023년 12월 20일
0

Typescript

목록 보기
2/2
post-thumbnail

✅ enum

  • 간단한 상수들을 그룹화한 열거형 데이터 타입
enum UserRole {
  ADMIN = "ADMIN",
  EDITOR = "EDITOR",
  USER = "USER",
}

enum UserLevel {
  NOT_OPERATOR, // 0
  OPERATOR // 1
}

function checkPermission(userRole: UserRole, userLevel: UserLevel): void {
  if (userLevel === UserLevel.NOT_OPERATOR) {
    console.log('당신은 일반 사용자 레벨이에요');
  } else {
    console.log('당신은 운영자 레벨이군요');
  } 

  if (userRole === UserRole.ADMIN) {
    console.log("당신은 어드민이군요");
  } else if (userRole === UserRole.EDITOR) {
    console.log("당신은 에디터에요");
  } else {
    console.log("당신은 사용자군요");
  }
}

const userRole: UserRole = UserRole.EDITOR;
const userLevel: UserLevel = UserLevel.NOT_OPERATOR;
checkPermission(userRole, userLevel);

👩‍💻 enum을 쓰는 경우

  • 간단한 상수 값을 그룹화 해서 관리할 때 적합하다.
  • 상수값이기 때문에 각 멤버의 값이 변하면 안된다.

✅ object literal

  • 키 + 값 쌍으로 구성된 객체를 정의하는 방식
const obj = {
  a: [1,2,3],
  b: 'b',
  c: 4
}

👩‍💻 Object literal 쓰는 경우

  • 객체 리터럴은 멤버의 값이나 데이터 타입을 맘대로 변경할 수 있다.
  • 복잡한 구조와 다양한 데이터 타입을 사용해야 할 때는 객체 리터럴을 사용한다.

0개의 댓글