TypeScript
[TypeScript] String Enums vs. Numeric Enums
Dongi
2022. 1. 17. 17:09
안녕하세요 동기 여러분! 오늘은 커스텀 타입의 두 번째 시간입니다. 문자 에넘스랑 숫자 에넘스 중에 어느 것이 더 우리가 사용하기에 적합한지 알아봅시다!
String Enums vs. Numeric Enums
결론부터 말씀드리자면 숫자 에넘스보다는 문자 에넘스를 강력 추천드립니다!
문자 에넘스가 숫자 에넘스보다 좋은 이유
enum DenmarkForcesString {
CrossbowMen = '석궁병대',
DismountedHuscarls = '허스칼 보병대',
Obudshaer = '오버샤이어',
Huscarls = '허스칼 기마병대'
}
enum DenmarkForcesNums {
CrossbowMen = 5,
DismountedHuscarls, // 자동으로 6
Obudshaer, // 자동으로 7
Huscarls // 자동으로 8
}
- 첫 번째 에넘스는 문자 에넘스입니다.
- 두 번째 에넘스는 숫자 에넘스입니다.
새로운 변수(myForcesString)를 만들어서 타입을 DenmarkForcesString을 선언하여 다양한 값을 넣어보겠습니다.
1. "아무말 대잔치"를 넣는경우
- 아예 "아무말 대잔치"를 타입으로 인식하고 있음!
2. Obudshaer라는 프로퍼티의 값을 넣는 경우
- 역시 "오버샤이어" 자체를 타입으로 인식하고 있음!
3. 다이렉션(Direction = DenmarkForcesString)과 프로퍼티(Property = Huscarls)를 넣어주는 경우
위와 비슷한 상황을 만들어 숫자도 해보겠습니다.
새로운 변수(myForcesNums)를 만들어서 타입을 DenmarkForcesNums을 선언하여 다양한 값을 넣어보겠습니다.
1. 아무 숫자나 넣는 경우
2. 혹시 모르니까 다시 아무 숫자나 넣는 경우
3. 다이렉션(Direction = DenmarkForcesNums)과 프로퍼티(Property = Obudshaer)를 넣어주는 경우
결론
위의 실험을 통해 알 수 있는 사실은 문자 에넘스가 숫자 에넘스보다 더욱 엄격하다는 것입니다. 그렇기 때문에 에넘스를 사용할 때 숫자보다는 문자를 사용하시길 강력히 추천합니다. (에러가 뜨지 않는 숫자는 제대로 하고 있는지 안 하고 있는지 알 수가 없으니까요 ㅠ)
오늘의 느낌
이제 4일만 버티면 헬스장이 문을 다시 연다!!! 화이팅