enum์ด๋ž€?

  • ์—ด๊ฑฐํ˜• ๋ณ€์ˆ˜๋กœ ์ •์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ๋•Œ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ
  • ์ž„์˜์˜ ์ˆซ์ž๋‚˜ ๋ฌธ์ž์—ด์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜๋‚˜์˜ ์œ ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ๋ฒ„๊ทธ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  • TypeScript๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ๋Šฅ
// ์•„๋ฌด๊ฒƒ๋„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” 0๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ๋งค๊ธด๋‹ค.
enum MOBILE_OS {
  IOS, // 0
  ANDROID, // 1
}

// ์ž„์˜์˜ ์ˆซ์ž๋‚˜ ๋ฌธ์ž์—ด์„ ํ• ๋‹นํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
enum MOBILE_OS {
  IOS = 'iOS',
  ANDROID = 'Android',
}

// ์•„๋ž˜์™€ ๊ฐ™์ด ์œ ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
const os: MOBILE_OS = MOBILE_OS.IOS;
function detectOSType(userAgent: string): MOBILE_OS {
  // ...
}
  • JavaScript์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋จ
const MOBILE_OS = {
  IOS: 'iOS',
  ANDROID: 'Android',
};

console.log(MOBILE_OS.IOS); // iOS
  • enum์€ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์ด์ง€๋งŒ TypeScript๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Tree-shaking์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ฐธ๊ณ ๋งํฌ

TypeScript enum์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒŒ ์ข‹์€ ์ด์œ ๋ฅผ Tree-shaking ๊ด€์ ์—์„œ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.