Frontend 개발자 - hyo.loui

νƒ€μž…μŠ€ν¬λ¦½νŠΈ - Enum (μ΄λ„˜) λ³Έλ¬Έ

Typescript

νƒ€μž…μŠ€ν¬λ¦½νŠΈ - Enum (μ΄λ„˜)

hyo.loui 2023. 1. 17. 20:35

🎯λͺ©μ  :

Type Script  μ΄λ„˜, 정리 및 볡슡

 


1. Enum (μ΄λ„˜) μ΄λž€?

JSμ—λŠ” μ—†κ³  TSμ—λ§Œ μžˆλŠ” νƒ€μž…

νŠΉμ • κ°’λ“€μ˜ 집합을 μ˜λ―Έν•˜λŠ” μžλ£Œν˜•

 

μ‰½κ²Œ 말해, νƒ€μž…ν˜• 였브젝트(객체)이닀

 


2. μˆ«μžν˜• μ΄λ„˜

// μˆ«μžν˜• μ΄λ„˜

enum Direction {
  Up = 1, // μ‹œμž‘ number μ„€μ • κ°€λŠ₯!
  Down,
  Left = 200, // 쀑도 number ν‘œκΈ°μ‹œ λ’€λ‘œ μž‘μ„±ν•œ 것듀은 (+ 1) 이 λœλ‹€
  Right,
}
console.log(Direction.Up, Direction.Down, Direction.Left, Direction.Right); // 1, 2, 200, 201

const up: Direction = Direction.Up;
console.log("πŸ‘‰πŸ‘‰  up", up); // πŸ‘‰πŸ‘‰  up 1

const down: Direction = Direction.Down;
console.log("πŸ‘‰πŸ‘‰  down", down); // πŸ‘‰πŸ‘‰  down 2

const LeftOrRight: Direction.Left | Direction.Right = Direction.Right;
console.log("πŸ‘‰πŸ‘‰  LeftOrRight", LeftOrRight); // πŸ‘‰πŸ‘‰  LeftOrRight 201
console.log(Direction[1]); // Up

 


3. λ¬Έμžν˜• μ΄λ„˜

// λ¬Έμžν˜• μ΄λ„˜

enum Direction2 {
  Up = "up",
  Down = "Down",
  Left = "Left",
  Right = "Right",
}

console.log(Direction.Down); // 2

 


4. λ³΅ν•©ν˜• μ΄λ„˜

μ„œλ‘œ λ‹€λ₯Έ νƒ€μž…μ„ μ΄λ„˜μ— 넣을 수 μžˆλ‹€

ν•˜μ§€λ§Œ κΆŒκ³ ν•˜μ§€ μ•ŠλŠ” 방법이고, 잘 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  ν•œλ‹€

// λ³΅ν•©ν˜• μ΄λ„˜(κΆŒκ³ ν•˜μ§€ μ•ŠμŒ)

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

console.log(BooleanLikeHeterogeneousEnum.No, BooleanLikeHeterogeneousEnum.Yes); // 0 yes

μœ„μ²˜λŸΌ μΈμžκ°€ 1개만 전달이 λ˜μ–΄λ„ κΈ°λ³Έκ°’이 있기 λ•Œλ¬Έμ— μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.

 


 

 μ΅œμ’… 정리 

  1. μ΄λ„˜μ€ νŠΉμ • κ°’λ“€μ˜ 집합이고, νƒ€μž…ν˜• 였브젝트라고 μƒκ°ν•˜λ©΄ νŽΈν•˜λ‹€
  2. μˆ«μžν˜• μ΄λ„˜μ—μ„œ 첫번째 값에 숫자λ₯Ό λ„£μ–΄μ£Όλ©΄, μžλ™μœΌλ‘œ 뒀에 μžˆλŠ” 객체듀은 +1μ”© 더해쀀닀
  3. λ¬Έμžν˜• μ΄λ„˜μ€ μš°λ¦¬κ°€ 객체 μ‚¬μš©ν•  λ•Œμ™€ 같이 enum.key 둜 μ™ΈλΆ€μ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.
  4. λ³΅ν•©ν˜• μ΄λ„˜μ€ λ‹€λ₯Έ νƒ€μž…μ„ 같이 μ΄λ„˜μ— 넣은 κ²ƒμ΄μ§€λ§Œ, 잘 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.