enum type

<aside> πŸ‘©β€πŸŒΎ Enum을 μ‚¬μš©ν•  경우 Tree-shaking이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. tree shaking ?

</aside>

Handbook - Enums

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ enumerableν•œ μš”μ†ŒλŠ” μˆœν™˜κ³Ό 탐색이 κ°€λŠ₯ ν•˜λ“―μ΄ 객체의 ν•„μš”ν•œ 값을 νƒ€μž…μœΌλ‘œ μ •μ˜ν•΄ μ—΄κ±°ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” νƒ€μž…μž…λ‹ˆλ‹€.

숫자 μ—΄κ±°ν˜• (Numeric enums)

λ‹€λ₯Έ μ–Έμ–΄λ₯Ό λ°°μ›Œ 보신 뢄듀이라면 μΉœμˆ™ν•˜κ²Œ λŠλΌμ‹€ 수 μžˆλŠ” 숫자 μ—΄κ±°ν˜•μ— λŒ€ν•΄μ„œ λ¨Όμ € λ°°μ›Œλ³΄κ² μŠ΅λ‹ˆλ‹€. μ—΄κ±°ν˜•μ€Β enumΒ ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

enum Direction {
  UP,
  DOWN,
  LEFT,
  RIGHT,
}

πŸ‘‰Β μ „λΆ€ μ΄ˆκΈ°ν™” ν•˜μ§€ μ•ŠμŒ

UP= 0 DOWN = 1β€¦λ‘œ μžλ™ 증가함

enum Keyboard {
  A = 65,
  B,
  C,
  D,
}

πŸ‘‰Β ν•˜λ‚˜λ§Œ μ΄ˆκΈ°ν™”

A= 65, B = 66 … 둜 μžλ™ 증가함

λ¬Έμžμ—΄ μ—΄κ±°ν˜• (String enums)

.λ¬Έμžμ—΄ μ—΄κ±°ν˜•μ—μ„œ 각 멀버듀은 λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ λ˜λŠ” λ‹€λ₯Έ λ¬Έμžμ—΄ μ—΄κ±°ν˜•μ˜ λ©€λ²„λ‘œ μƒμˆ˜ μ΄ˆκΈ°ν™” ν•΄μ•Ό ν•©λ‹ˆλ‹€.

enum Direction {
	//λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄λ‘œ μ΄ˆκΈ°ν™”
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT",
 //λ‹€λ₯Έ μ—΄κ±°ν˜•μ˜ λ©€λ²„λ‘œ μ΄ˆκΈ°ν™”
  up = Up,
}

이쒅 μ—΄κ±°ν˜•(Heterogeous enums)

μˆ«μžμ™€ 문자λ₯Ό μ„žμ–΄μ„œ μ—΄κ±°ν˜•μ„ μ‚¬μš©ν•  수 있음 ! μžλ°”μŠ€ν¬λ¦½νŠΈ λŸ°νƒ€μž„μ—μ„œ μž₯점을 μ·¨ν•˜λ €λŠ” 게 μ•„λ‹ˆλ©΄ μ΄λ ‡κ²Œ μ‚¬μš©ν•˜μ§€ 말 것

enum BooleanLikeHeterogeneousEnum {
  No = 0,
  Yes = "YES",
}

computed and constant members