티스토리 뷰

안녕하세요 동기 여러분! 오늘은 커스텀 타입의 두 번째 시간입니다. 문자 에넘스랑 숫자 에넘스 중에 어느 것이 더 우리가 사용하기에 적합한지 알아봅시다!

 

String Enums vs. Numeric Enums

결론부터 말씀드리자면 숫자 에넘스보다는 문자 에넘스를 강력 추천드립니다! 

 


 

문자 에넘스가 숫자 에넘스보다 좋은 이유

enum DenmarkForcesString {
    CrossbowMen = '석궁병대',
    DismountedHuscarls = '허스칼 보병대',
    Obudshaer = '오버샤이어',
    Huscarls = '허스칼 기마병대'
}

enum DenmarkForcesNums {
    CrossbowMen = 5,
    DismountedHuscarls, // 자동으로 6
    Obudshaer, // 자동으로 7
    Huscarls // 자동으로 8
}
  • 첫 번째 에넘스는 문자 에넘스입니다.
  • 두 번째 에넘스는 숫자 에넘스입니다.

 

새로운 변수(myForcesString)를 만들어서 타입을 DenmarkForcesString을 선언하여 다양한 값을 넣어보겠습니다.

1. "아무말 대잔치"를 넣는경우

타입 "아무말 대잔치"는 타입 'DenmarkForcesString'에 선언할 수 없다고 에러가 뜹니다.

  • 아예 "아무말 대잔치"를 타입으로 인식하고 있음!

 

 

2. Obudshaer라는 프로퍼티의 값을 넣는 경우

타입 "오버샤이어"는 타입 "DenmarkForcesString"에 선언할 수 없다고 에러가 뜹니다.

  • 역시 "오버샤이어" 자체를 타입으로 인식하고 있음!

 

3. 다이렉션(Direction = DenmarkForcesString)과 프로퍼티(Property = Huscarls)를 넣어주는 경우

에러없이 잘 컴파일링 됩니다.

 

 

위와 비슷한 상황을 만들어 숫자도 해보겠습니다.

 

새로운 변수(myForcesNums)를 만들어서 타입을 DenmarkForcesNums을 선언하여 다양한 값을 넣어보겠습니다.

 

1. 아무 숫자나 넣는 경우

아니? 에러없이 컴파일링 됩니다...

 

2. 혹시 모르니까 다시 아무 숫자나 넣는 경우

역시나 에러가 없습니다...

 

3. 다이렉션(Direction = DenmarkForcesNums)과 프로퍼티(Property = Obudshaer)를 넣어주는 경우

제대로 된 방법이기 때문에 에러가 없습니다.

 


 

결론

위의 실험을 통해 알 수 있는 사실은 문자 에넘스가 숫자 에넘스보다 더욱 엄격하다는 것입니다. 그렇기 때문에 에넘스를 사용할 때 숫자보다는 문자를 사용하시길 강력히 추천합니다. (에러가 뜨지 않는 숫자는 제대로 하고 있는지 안 하고 있는지 알 수가 없으니까요 ㅠ)

 


 

오늘의 느낌

이제 4일만 버티면 헬스장이 문을 다시 연다!!! 화이팅

'TypeScript' 카테고리의 다른 글

[TypeScript] Type Aliases  (0) 2022.01.18
[TypeScript] Object Types  (0) 2022.01.17
[TypeScript] Enums  (0) 2022.01.17
[TypeScript] Spread Syntax  (0) 2022.01.16
[TypeScript] Rest Parameters  (0) 2022.01.16
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함