FrontEngineer JungBam

enum 본문

카테고리 없음

enum

정밤톨 2023. 3. 10. 01:31
enum ERROR {
  SUCCESS = 200,
  EXPRIES = 401,
  NONE = 403,
}

const person: {
  name: string;
  age: number;
  hobbies: string[];
  status: ERROR;
} = {
  name: "Max",
  age: 30,
  hobbies: ["운동", "요리"],
  status: 200,
};

if ((person.status = ERROR.SUCCESS)) console.log(1);
enum을 구글링을 하면 많은 JAVA에서의 enum에 대한 결과가 나온다. enum은 무엇일까?
공식문서에서 보면 "이름이 있는 상수들의 집합을 정의할 수 있습니다. 열거형을 사용하면 의도를 문서화 하거나 구분되는 사례 집합을 더 쉽게 만들수 있습니다. TypeScript는 숫자와 문자열-기반 열거형을 제공합니다."라고 설명이 되어 있다. 하나의 영역을 만들어서 그것을 타입으로 사용함으로써 내가 개발할 때에 의도를 명확히 할 수 있다는 것으로 해석이 된다.(좀 더 공부하고 싶다면 아래 링크 참조)

위의 코드처럼 person이라는 데이터가 response로 온다고 가정했을 때, statusCode에 따라 처리를 하고 싶다고 하자. 이럴 때에 enum을 만들어서 사용함으로써 발생할 수 있는 휴먼이슈를 방지하는 용도로도 사용이 가능할 것이다.
 

Handbook - Enums

How TypeScript enums work

www.typescriptlang.org

위의 코드가 자바스크립트로 컴파일 되면 아래와 같이 변한다. 핸드북에도 설명되어있는 부분이지만 직접 해보면 어떤식인지 감이 오기 때문에 빌드해보고 자바스크립트 파일을 한번 보는 것을 추천한다.

var ERROR;
(function (ERROR) {
    ERROR[ERROR["SUCCESS"] = 200] = "SUCCESS";
    ERROR[ERROR["EXPRIES"] = 401] = "EXPRIES";
    ERROR[ERROR["NONE"] = 403] = "NONE";
})(ERROR || (ERROR = {}));
var person = {
    name: "Max",
    age: 30,
    hobbies: ["운동", "요리"],
    status: 200
};
if ((person.status = ERROR.SUCCESS))
    console.log(1);

 

반응형
Comments