๐ŸŸฆ [TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํƒ€์ž…

๐Ÿ’ก ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ

  • TypeScript๋Š” javascript ๊ธฐ๋ฐ˜์˜ ํ™•์žฅ ์Šˆํผ์…‹(Superset)์–ธ์–ด๋กœ ๊ธฐ๋ณธ JS์—์„œ ์ œ๊ณตํ•˜๋Š” ํƒ€์ž…์— TS ํƒ€์ž…์ด ์กฐ๊ธˆ ๋” ์ถ”๊ฐ€๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๐Ÿ“Œ The primitives : ๊ธฐ๋ณธ ํƒ€์ž…

โ†ช Any Type

  • Any : Dynamic Type ๋ชจ๋“ ํƒ€์ž… ํ—ˆ์šฉ, ํƒ€์ž…์— ์ œํ•œ์ด ์—†์Œ.
  • Any ํƒ€์ž…์€ ์•„๋ฌด๋Ÿฐ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ TS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ์—†์–ด์ง„๋‹ค.
  • ์ž˜๋ชป๋œ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ๋„ ์žก์•„์ฃผ์ง€ ๋ชปํ•˜๋ฉฐ ์‹คํ–‰ ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
let typeAny: any = "any" + 1;
// ๋ฌด์—‡์ด๋“  ๊ฐ’ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์—๋Ÿฌ๋„ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.
typeAny = 2;
typeAny = true;
typeAny = null;

// ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
// ๋Ÿฐํƒ€์ž„์— ์—๋Ÿฌ๋ฅผ ๋„์›Œ์ค€๋‹ค.
typeAny + 1

โ†ช Unknown Type

  • Unknown : Any์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋“  ํƒ€์ž…์„ ํ—ˆ์šฉํ•œ๋‹ค. ๋‹จ, Any์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํƒ€์ž…์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์‚ฌํ•ด ์—๋Ÿฌ๋ฅผ ๋„์›Œ์ค€๋‹ค.
  • Unknown์€ ํƒ€์ž…๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•ด ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • Unknown Any๋ณด๋‹ค๋Š” Unknown์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๋” ์ข‹๋‹ค!
let typeUnknown: unknown;
// ํ•ด๋‹น ๋ณ€์ˆ˜๋Š” Any์™€ ๊ฐ™์ด ๋ชจ๋“  ํƒ€์ž…์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.
typeUnknown = 'string';
typeUnknown = 1

typeUnknown + 1 // Error
// ์ด๋Ÿฐ์‹์œผ๋กœ ํƒ€์ž…์„ ๊ฒ€์ฆํ•˜์—ฌ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
typeof typeUnknown === "number" ? typeUnknown + 1 : false

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ