[Language/TypeScript] TS์—์„œ ์ œ๊ณตํ•˜๋Š” Types

2023. 7. 26. 14:11ใ†๐Ÿ”ค Language/TypeScript

TS์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ type์„ ์ œ๊ณตํ•œ๋‹ค.

boolean, number, stirng, ๋ฐฐ์—ด, ํŠœํ”Œ, enum

ํŠœํ”Œ(tuple) ?

: ๋ฐฐ์—ด์€ ๊ฐ™์€ ํƒ€์ž…์˜ element๋งŒ ๊ฐ€์งˆ ์ˆ˜์žˆ์œผ๋‚˜ ํŠœํ”Œ์€ ๋ฐฐ์—ด ์•ˆ์— ์—ฌ๋Ÿฌ type์˜ element๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
๋ฐฐ์—ด์˜ ๋ช…๋ น์–ด๋“ค์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

enum ??

: ์—ด๊ฑฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ํƒ€์ž…์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Œ.

  • number, stirng ํƒ€์ž…์˜ ๊ฐ’๋งŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Œ
  • ํ™œ์šฉ ์˜ˆ์‹œ

enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}

enum UserLevel {
NOT_OPERATOR, // 0
OPERATOR // 1
}

function checkPermission(userRole: UserRole, userLevel: UserLevel): void {
if (userLevel === UserLevel.NOT_OPERATOR) {
console.log('๋‹น์‹ ์€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ์ด์—์š”');
} else {
console.log('๋‹น์‹ ์€ ์šด์˜์ž ๋ ˆ๋ฒจ์ด๊ตฐ์š”');
}

if (userRole === UserRole.ADMIN) {
console.log("๋‹น์‹ ์€ ์–ด๋“œ๋ฏผ์ด๊ตฐ์š”");
} else if (userRole === UserRole.EDITOR) {
console.log("๋‹น์‹ ์€ ์—๋””ํ„ฐ์—์š”");
} else {
console.log("๋‹น์‹ ์€ ์‚ฌ์šฉ์ž๊ตฐ์š”");
}
}

const userRole: UserRole = UserRole.EDITOR;
const userLevel: UserLevel = UserLevel.NOT_OPERATOR;
checkPermission(userRole, userLevel);