21.08.25
오늘 업무중에 typescript enum의 이상한? 점을 발견했다.
enum GENDER {
MAN = 1,
WOMAN = 2,
KIDS = 3
}
enum DRINKS {
SOJU = '소주'
BEER = '맥주'
}
위의 코드를 보자, GENDER.MAN = 1인것은 자명하다. 그런데 GENDER[1] = MAN 이것은 성립이 될까?
결론부터 말하면 YES이다. 그래서 나는 ENUM을 이상한 넘이라고 표현했다. 더 이상한 것은 DRINKS['소주'] = SOJU는 아니라는 것 이다. 왜 이런 현상이 발생하는지 알아보기 위해서 공식 문서를 살펴 보도록 하겠다.
https://www.typescriptlang.org/ko/docs/handbook/enums.html
내가 잘못 읽었나..? 문자 열거형과 숫자 열거형의 차이에 관해서 아무리 읽어봐도 내가 쓴 이상한 점에 대한 설명이 없다.. 혹시 못 찾은 걸수도? 다시 봐도 없다...ㅠㅠ
내가 찾은 이상한 점과 이상한 이유까지 정리하고 싶었으나.. 이유를 찾지 못했다.
문자 열거형은 상수만 할당할 수 있다는 특성이 있고, 숫자 열거형은 계산된 값을 할당할 수 있다는 차이점 때문인가..? => 이건 아닌듯. 문자 열거형엔 상수만 할당 할 수 있기에 오히려 더 가능해야 하는거 아닌가?
MAY BE 숫자 열거형은 내부적으로 배열에 할당 되는듯..? 잘 모르겠다.. 나중에 시간이 나면 다시 알아봐야겠다
'프로그래밍 > javascript' 카테고리의 다른 글
javascript의 this 그리고 [call,bind,apply] 함수 (0) | 2022.02.02 |
---|---|
begining functional javascript 4장 클로저 (0) | 2022.01.19 |
begining functional javascript (0) | 2022.01.19 |
[react] clean-up function에 대한 이해 (0) | 2021.10.24 |
[TYPE SCRIPT] MAP 함수 오류 (해결책) (0) | 2021.08.25 |