하나도 의미없이 무지성으로 변수들을 복제한 것으로 결론이 났다.
ChatGPT
경우에 따라 다릅니다. 대부분의 내부 TS 프로젝트에서는 export const enum만으로도 충분하지만, 라이브러리·다양한 툴체인 호환성·런타임 조작(리플렉션) 등이 필요하면 개별 export const를 따로 선언해 두는 것이 실전에서 안전합니다.
핵심 정리
export const enum
tsc로 빌드하고 preserveConstEnums: false(기본)면 컴파일 타임에 값이 인라인되어 런타임에 enum 객체가 남지 않음.
장점: 런타임 코드가 줄어들고 성능·번들 크기 면에서 유리.
단점: Babel 같은 도구(또는 isolatedModules: true 설정을 사용하는 환경)에서는 처리되지 않거나 에러가 날 수 있음 — 결과적으로 JS 소비자가 기대하는 런타임 값이 없을 수 있음.
**개별 export const**를 같이 선언하는 이유
JS 소비자/다른 툴체인과의 호환성 — 런타임에서 값으로 import 가능하게 하려는 목적.
런타임 리플렉션(.keys, 동적 접근 등)을 해야 할 때.
명시적 API: import { A } from 'pkg'처럼 사용성을 높이고 트리쉐이킹이 잘 되게 하려는 목적.
타입/런타임 분리: 타입은 const enum/타입으로, 런타임은 export const로 제공하면 TS 편의와 JS 호환을 동시에 만족.
- dc official App
퍼블릭 API로 쓴거 같은데?라고 물어보세요 API 게이트웨이로 쓴거면 문제 없을거라고 할겁니다
그런거 아니고 내부에서만 씀 - dc App
@글쓴 프갤러(218.154) 흠 그럼 잘못된듯