ํ์ ์คํฌ๋ฆฝํธ์์ ์ซ์ ๋๋ ๋ฌธ์์ด ๊ฐ์ ์งํฉ์ ์๋ฏธ์๋ ์ด๋ฆ์ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ฐ๋ฐ์์ ์๋๋ฅผ ๋ฌธ์ํํ๊ฑฐ๋ ๊ด๋ จ๋ ๊ฐ์ ํ ๊ณณ์ ๋ชจ์๋๊ณ ์ฌ์ฉํ ๋ ์ ์ฉํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก enum์ ์ซ์ํ์ผ๋ก ์ ์๋๋ค. ์๋ฌด๊ฒ๋ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ์๋ ์ฒซ๋ฒ์งธ ์์๊ฐ 0๋ถํฐ ์์ํ๋ฉฐ ์๋์ผ๋ก ์ฆ๊ฐํ๋ค. ๋, ์ด๊ธฐ๊ฐ์ผ๋ก ์ซ์๋ฅผ ์ง์ ํ๋ฉด ๊ทธ ๋ค์ ๊ฐ๋ค์ ์๋์ผ๋ก ์ฆ๊ฐํ๋ค.
enum Direction {
Up, // 0
Down, // 1
Left, // 2
Right // 3
}
console.log(Direction.Up); // 0
console.log(Direction.Down); // 1
enum Direction {
Up = 1,
Down, // 2
Left, // 3
Right // 4
}
๋ชจ๋ ์์๋ฅผ ๋ฌธ์์ด๋ก ์ค์ ํ๋ ค๋ฉด ๋ช ํํ ๊ฐ์ ์ง์ ํด์ผ ํ๋ค.
enum Status {
Success = "SUCCESS",
Failure = "FAILURE",
Pending = "PENDING"
}
console.log(Status.Success); // "SUCCESS"
์ฝ๋์์ ์๋ฏธ์๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค.
์๋์์ฑ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๊ณ , ํ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
enum Status {
Success = "SUCCESS",
Failure = "FAILURE",
Pending = "PENDING"
}
function setStatus(status: Status) {
console.log(`Status set to ${status}`);
}
setStatus(Status.Success);
setStatus("Loading"); // โ
ํ์
์คํฌ๋ฆฝํธ์ type
์ด๋ interface
๋ ์ปดํ์ผ ์ ์ฌ๋ผ์ง์ง๋ง enum
์ ๋ฐํ์์๋ ๋จ์์๊ธฐ์ ๊ฐ ์์ฒด๋ฅผ ์ง์ ํ์ฉ ํ ์ ์๋ค.
Enum์ ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ฒด์ ์ผ๋ก ๊ตฌํํ ์ฝ๋์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ํธ๋์คํ์ผํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ๋ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
var Status;
(function (Status) {
Status[Status["SUCCESS"] = "SUCCESS";
Status[Status["FAILURE"] = "FAILURE";
Status[Status["PENDING"] = "PENDING";
})(Status || (Status = {}));
console.log(Status.Success); // "SUCCESS"