TypeScript에서 enum 대신 const 사용하기
TypeScript 버전 5.5.4
enum
export enum Theme {
Light,
Dark,
}
트랜스파일 결과:
"use strict";
// src/enum.ts
var Theme = /* @__PURE__ */ ((Theme2) => {
Theme2[(Theme2["Light"] = 0)] = "Light";
Theme2[(Theme2["Dark"] = 1)] = "Dark";
return Theme2;
})(Theme || {});
- IIFE(즉시 실행 함수)로 변환됨
- TSC는 IIFE를 사용하는지 사용하지 않는 코드인지 알 수 없어 자바스크립트 번들에 항상 포함(tree-shaking 어려움)
const
export const Theme = {
Light: "light",
Dark: "dark",
} as const;
export type Theme = (typeof Theme)[keyof typeof Theme];
트랜스파일 결과:
"use strict";
// src/enum.ts
var Theme = {
Light: "light",
Dark: "dark",
};
- 단순 객체로 변환
- 필요 시에만 번들에 포함 (tree-shaking 가능)
// 사용 예
function setTheme(theme: Theme) {}
setTheme(Theme.Dark);
댓글