카테고리 없음

. enum과 object literal

wooseobsssss 2023. 12. 19. 19:53

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);


object literal

 

옵잭트 리터럴의 예시

 

const obj = {
  a: [1,2,3],
  b: 'b',
  c: 4
}

 

이넘과 흡사해 보이지만 CONST /LET을 사용가능하지만

 

키 + 쌍으로 구성된 객체를 정의하는 방식


  언제 이넘을 쓰고 언제 옵잭트 리터럴을 쓸까

 

이넘은 다수의 상수값을 쓸 때 쓴다.

 

옵잭트는 객체에 다양한 쌍의  키와 밸류을 사용할 때 쓰면 좋다.