Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🖥️ Preview
close #187
✏️ 한 일
❗️ 발생한 이슈 (해결 방안)
enum
as const
로 상수를 선언해서 불필요한 타입 정의가 많아지는 경향이 있었습니다.as-is
to-be
enum
은 typescript 자체 문법으로, javascript로 컴파일될 때 즉시 실행함수로 변환이 되면서 Tree-shaking이 안된다는 단점이 있습니다.참고자료
const enum
따라서
enum
�대신const enum
을 사용했습니다.const enum
의 경우enum
과 유사하게 열거형으로 사용되는 타입입니다. 하지만enum
과는 달리 javascript로 컴파일 될 때 즉시 실행 함수가 아니라 상수 값으로 치환되어서 tree shaking의 문제가 없습니다.const enum의 문제점
const enum
을 사용하는 경우 위 상황에서 오류가 발생하는데,enum
은 숫자형 열거형일 경우 값에서 키를, 키에서 값을 참조할 수 있는 양방향 매핑을 제공하지만const enum
은 양방향 매핑을 제공하지 않기 때문입니다.결국 이렇게 값을 참조해야하는 경우에는
const enum
을 사용할 수 없어서enum
을 사용해야합니다.❓ 논의가 필요한 사항