๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/TypeScript

TypeScript๋ž€?

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 15.
๋ฐ˜์‘ํ˜•

๐ŸŒ€ TypeScript ๋ž€?

JavaScript + Type = TypeScript

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ตฌํ˜„ํ•œ JavaScript์˜ ์ƒ์œ„ ํ™•์žฅ(Superset) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด.

 

  • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๋ฐœํ‘œํ•œ ์˜คํ”ˆ ์†Œ์Šค
  • ES6์˜ Class, module ๋“ฑ๊ณผ ES7์˜ Decorator ๋“ฑ์„ ์ง€์›
  • ํ™•์žฅ์ž๋กœ๋Š” .ts๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ปดํŒŒ์ผ์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ JavaScript ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข…์ ์œผ๋กœ runtime์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ๋œ JavaScript ์ฝ”๋“œ๋ฅผ ๊ตฌ๋™์‹œํ‚จ๋‹ค.



 

๐ŸŒ€ TypeScript์˜ ํŠน์ง•

์ •์  ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด Vanilla Javascript์™€์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ด๋‹ค.

์ฆ‰, 'JavaScript๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์žˆ์„๋งŒํ•œ type ERROR๋“ค์„ ๋ฏธ๋ฆฌ ์žก๋Š” ๊ฒƒ' ์ด Typescript์˜ ์‚ฌ์šฉ ๋ชฉ์ ์ด๋‹ค.

 

 

๐Ÿ‘‰๐Ÿป ์ •์  ํƒ€์ž… & ๋ช…์‹œ์ ์ธ ํƒ€์ž…

๊ฐœ๋ฐœ ๋„๊ตฌ(IDE๋‚˜ ์ปดํŒŒ์ผ๋Ÿฌ ๋“ฑ)์—๊ฒŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•œ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜ ๋“ฑ์˜ ๋ชฉ์ ์„ ๋”์šฑ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์˜ˆ์ธกํ•˜๊ธฐ๊ฐ€ ์šฉ์ดํ•˜๋ฉฐ ๋””๋ฒ„๊น…์„ ํ•˜๊ธฐ์— ํŽธ๋ฆฌํ•˜๋‹ค.
์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ERROR๋ฅผ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ํฐ ์žฅ์ ์ด๋‹ค.

 

๐Ÿ‘‰๐Ÿป ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›

 

๐Ÿ‘‰๐Ÿป ERROR์˜ ์‚ฌ์ „ ๋ฐฉ์ง€

TypeScript๋Š” ์ •์  ํƒ€์ž…์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์—๋Ÿฌ๋ฅผ ์‰ฝ๊ฒŒ ์žก์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

// JavaScript

function sum(a, b) {
  return a + b;
}

sum(10, 20); // ๐Ÿ‘๐Ÿป
// TypeScript

function sum(a: number, b: number) {
  return a + b;
}

sum('10', '20') // ๐Ÿ’ฉ

์ด์ฒ˜๋Ÿผ ์˜๋„ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ์˜ ๋™์ž‘์„ ์‚ฌ์ „์— ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘‰๐Ÿป ๊ฐœ๋ฐœ ํˆด & ๋„๊ตฌ์˜ ์ง€์›

TypeScript๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ฐœ๋ฐœ ํˆด์˜ ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ Visual Studio Code๋Š” TypeScript์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ๋Š” ํˆด์ด๋‹ค.
๋‹ค์–‘ํ•œ IDE๋“ค์ด TypeScript๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์—ญ์‹œ TypeScript์˜ ์ œ์ž‘์‚ฌ์ธ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ Visual Studio Code์™€์˜ ์ •ํ•ฉ์„ฑ์ด ๊ฐ€์žฅ ํ›Œ๋ฅญํ•˜๋‹ค๊ณ  ํ‰๊ฐ€๋ฐ›๊ณ  ์žˆ๋‹ค.

 

๐Ÿ‘‰๐Ÿป ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ

๊ฐœ๋ฐœ์ž์™€ ๋„๊ตฌ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์—์„œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ์ž ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์—์„œ๋„ ์ƒ๋‹นํ•œ ์ด์ ์ด ์žˆ๋Š”๋ฐ, API๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉํ•จ์— ์žˆ์–ด ํ•ด๋‹น API์˜ input๊ณผ output์ด ๋ฌด์—‡์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ API ํ•˜๋‚˜ ์“ฐ๋Š”๋ฐ์—๋„ ์ผ์ผ์ด ๋งค๋‰ด์–ผ์„ ์ฐพ์•„๋ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์‹ฌํ•˜๋ฉด ํ•ด๋‹น API์˜ ์ฝ”๋“œ๊นŒ์ง€ ๋’ค์ ๊ฑฐ๋ ค๋ด์•ผ ํ•˜๋Š” JavaScript์— ๋น„ํ•ด ํšจ์œจ์ ์ด๋‹ค.



 

๐ŸŒ€ ์„ค์น˜ํ•˜๋Š” ๋ฒ•

TypeScript๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์šฐ์„  npm์ด ํ•„์š”ํ•˜๋‹ค!! Node.js๋ฅผ ์„ค์น˜ํ•˜๋ฉด npm์ด ์ž๋™์œผ๋กœ ์„ค์น˜๋œ๋‹ค. (react๋ฅผ ์‚ฌ์šฉํ•˜์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด ๋‹ค ๊น”๋ ค ์žˆ์„ ๊ฒƒ์ด๋‹ค...ใ…Ž)
๊ทธ ํ›„์— ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

npm i -g typescript

 

 

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ
๐Ÿ‘‰๐Ÿป TypeScript ๋‚˜๋ฌด์œ„ํ‚ค ๋ฌธ์„œ
๐Ÿ‘‰๐Ÿป TypeScript ๊ณต์‹๋ฌธ์„œ ๋ฒˆ์—ญ๋ณธ

๋ฐ˜์‘ํ˜•

'JavaScript > TypeScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋˜๋„๋ก์ด๋ฉด ์“ฐ์ง€ ๋ง์•„์•ผ ํ• ? type  (0) 2021.11.15
Type Alias  (0) 2021.11.15

๋Œ“๊ธ€