Skip to Content
Sunbeen's Blog
Documents๊ตฌ TypescriptGetting_started00. ๐ŸŸฆ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

00. ๐ŸŸฆ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

๐Ÿ“Œ The TypeScript Handbook (typescript ๊ณต์‹๋ฌธ์„œ)

https://www.typescriptlang.org/โ€‰

๐Ÿ“Œ typescript ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ

https://www.typescriptlang.org/playโ€‰

๐Ÿ“Œ typescript ํ•ธ๋“œ๋ถ ํ•„๋…

https://www.typescriptlang.org/ko/docs/handbook/intro.htmlโ€‰

๐Ÿ“Œ typescript ๋ฒ„์ „ ์ˆ˜์ • ๋‚ด์—ญ

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-8.htmlโ€‰

๐Ÿ“Œ Auto-Open Markdown Preview

Visual studio code ์˜ extension (Auto-Open Markdown Preview)์„ ์„ค์น˜ ํ›„ ์ง„ํ–‰ ํ•˜๋Š”๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

node ์„ค์น˜ (ํ•„์ˆ˜)

  • npm init -y : ํ”„๋กœ์ ํŠธ ์„ค์ •
  • npm install typescript : ํƒ€์ž…์ŠคํŠธ๋ฆฝํŠธ ์„ค์น˜
  • npx tsc โ€”init : ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ดˆ๊ธฐํ™”

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ -> ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜์‹œ์ผœ ๋™์ž‘์„ ํ•˜๊ฒŒ๋˜๋Š”๋ฐ, ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” node ๋ชจ๋“ˆ ์ž…๋‹ˆ๋‹ค.

๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” Deno๋„ ์กด์žฌ, MS์—์„œ ์‹ ๊ทœ ์ปดํŒŒ์ผ๋Ÿฌ ์ œ์ž‘์ค‘

js๋กœ ๋ณ€๊ฒฝ์„ ํ•ด์„œ ๋™์ž‘ํ•˜๊ธฐ ๋–„๋ฌธ์—, ๋ฒ„์ „๋งŒ ๋ช…์‹œํ•˜๋ฉด, ๋™์ž‘ํ•  ์—ฌ์ง€๊ฐ€ ํฝ๋‹ˆ๋‹ค.

๐Ÿ“Œ tsconfig.json (tsc โ€”init ์ƒ์„ฑ)

  • โ€œallowJsโ€: true // JS ํ•จ๊ป˜ ํ—ˆ์šฉ
  • โ€œstrictโ€ : true // ํƒ€๋น™์„ ๋” ์—„๊ฒฉํ•˜๊ฒŒ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.
  • โ€œsourceMapโ€ : true // ๋””๋ฒ„๊น…์‹œ, js, tsํŒŒ์ผ์„ ๋งตํ•‘ํ•˜๋Š” ์—ญํ™œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • โ€œtargetโ€ : โ€œes2016โ€ ์‚ฐ์ถœ๋ฌผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋ฒ„์ „์„ ํŠน์ •ํ•˜์—ฌ ๊ณผ๊ฑฐ ์ต์Šคํ”Œ๋กœ๋Ÿฌ๊นŒ์ง€ ์ปค๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • โ€œmoduleโ€ : ์ตœ์‹  ๋ชจ๋“ˆ์„ ์“ฐ๊ณ  ์‹ถ์œผ๋ฉด ES2015, ๊ทธ๋ƒฅ ๋†”๋‘๋ ค๋ฉด โ€œcommonjsโ€์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.
  • โ€œforceConsistentCasingInFileNamesโ€ : ์œˆ๋„์šฐ์—์„œ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„์„ ์ž˜ ์•ˆํ•˜์ง€๋งŒ, ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋งŽ์ด ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์†Œ๋ฌธ์ž ์ง€์ผœ์„œ ์ž„ํฌํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ตฌ๋ฌธ
  • โ€œskipLikCheckโ€ : .d.ts ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ชจ์•„๋‘” ํŒŒ์ผ๋กœ, ํƒ€์ž… ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ํƒ€์ž…์„ ์ฒดํฌํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ธฐ๋ณธ ์ง€์‹

  • ๋ฉ”์ธ ๋ฃฐ: typescript๋Š” ์ตœ์ข…์ ์œผ๋กœ javascript๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ˆœ์ „ํ•œ typescript ์ฝ”๋“œ๋ฅผ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ deno์ด๋‚˜ ๋Œ€์ค‘ํ™”๋˜์ง€๊ฐ€ ์•Š์•˜์Œ. ๋ธŒ๋ผ์šฐ์ €, ๋…ธ๋“œ๋Š” ๋ชจ๋‘ js ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • typescript๋Š” ์–ธ์–ด์ด์ž ์ปดํŒŒ์ผ๋Ÿฌ(tsc)์ด๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ts ์ฝ”๋“œ๋ฅผ js๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  • tsc๋Š” tsconfig.json(tsc โ€”init ์‹œ ์ƒ์„ฑ)์— ๋”ฐ๋ผ ts ์ฝ”๋“œ๋ฅผ js(tsc ์‹œ ์ƒ์„ฑ)๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ธํ’‹์ธ ts์™€ ์•„์›ƒํ’‹์ธ js ๋ชจ๋‘์— ์˜ํ–ฅ์„ ๋ผ์น˜๋ฏ€๋กœ tsconfig.json ์„ค์ •์„ ๋ฐ˜๋“œ์‹œ ๋ด์•ผํ•œ๋‹ค.
  • ๋‹จ์ˆœํžˆ ํƒ€์ž… ๊ฒ€์‚ฌ๋งŒ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด tsc โ€”noEmit ํ•˜๋ฉด ๋œ๋‹ค.
  • ๊ฐœ์ธ ์˜๊ฒฌ: tsconfig.json์—์„œ ๊ทธ๋ƒฅ esModuleInterop: true, strict: true ๋‘ ๊ฐœ๋งŒ ์ฃผ๋กœ ์ผœ๋†“๋Š” ํŽธ. strict: true๊ฐ€ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค ๋””๋ฒ„๊น…์„ ์œ„ํ•ด์„œ๋Š” sourceMap: true
  • ts ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ฒฐ๊ณผ๋ฌผ์ธ js๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
Last updated on