Front-End/TypeScript

[TypeScript] 01. VSCode๋กœ TypeScript ์‹œ์ž‘ํ•˜๊ธฐ

Bigone17 2022. 5. 26. 16:29

 

๐ŸŸก 1. TypeScript๋ž€?

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šˆํผ์…‹์ธ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœ, ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์—„๊ฒฉํ•œ ๋ฌธ๋ฒ•์„ ์ง€์›ํ•œ๋‹ค. - ์œ„ํ‚ค๋ฐฑ๊ณผ

  ์œ„ํ‚ค๋ฐฑ๊ณผ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์ด ์„ค๋ช…ํ•˜๊ณ  ์žˆ์ง€๋งŒ, TypeSript(์ดํ•˜ TS)๋Š” ํƒ€์ž…์ด ์žˆ๋Š” JS๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. 

TypeScript Superset

์œ„ํ‚ค๋ฐฑ๊ณผ ์„ค๋ช… ์ค‘ ์Šˆํผ์…‹์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Š” JS์˜ ๊ฐœ๋…์„ ํฌํ•จํ•˜๊ณ  ํ™•์žฅ๋œ ๊ฐœ๋…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ JS๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด, TS๋Š” ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐ŸŸฃ 1.1 ํƒ€์ž…์ด๋ž€?

์œ„ ์„ค๋ช…์—์„œ TS๋Š” ํƒ€์ž…์ด ์žˆ๋Š” JS๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ์š”. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ํƒ€์ž…์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์“ฐ์ด๋Š” String, Number, Boolean ๋“ฑ๊ณผ ๊ฐ™์€ ํƒ€์ž…์„ ์–˜๊ธฐํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŸก 2. VSCode์—์„œ TS ์„ธํŒ…ํ•˜๊ธฐ ์ˆœ์„œ

  1. ์ƒˆ๋กœ์šด ํด๋” ์ƒ์„ฑ
  2. ์ƒ์„ฑํ•œ ํด๋”๋ฅผ vscode๋กœ ์‹คํ–‰
  3. ํ„ฐ๋ฏธ๋„์— npm init -y ์ž…๋ ฅ
    ๋”๋ณด๊ธฐ
    npm init -y๋ฅผ ์‹คํ–‰ํ•˜๋ฉด package.json ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํŒŒ์ผ์—์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด์ ์ธ ์„ธํŒ…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํ„ฐ๋ฏธ๋„์— npm install -D typescript ์ž…๋ ฅ
    ๋”๋ณด๊ธฐ
    npm install -D typescript๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์— TS๊ด€๋ จ ๋ชจ๋“ˆ๋“ค์ด ์„ค์น˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ -D๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๋ฉด devDependencies์— ์„ค์น˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, --production ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐฐํฌํ•  ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•  ๋•Œ, devDependencies์— ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์€ ๋ฐฐํฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  5. package.json ํŒŒ์ผ => "main"์‚ญ์ œ, "script"์•ˆ์— "test"๋„ ์‚ญ์ œ, "build" : "tsc"์ถ”๊ฐ€ (ํ•˜๋‹จ ์ฝ”๋“œ ์ฐธ๊ณ )
  6. tsconfig.json ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์ž…๋ ฅ (ํ•˜๋‹จ ์ฝ”๋“œ ์ฐธ๊ณ )
  7. src๋ผ๋Š” ํด๋” ์ƒ์„ฑ => index.ts ํŒŒ์ผ ์ƒ์„ฑ => ๊ฐ„๋‹จ ์ฝ”๋“œ ์ž‘์„ฑ (ํ•˜๋‹จ ์ฝ”๋“œ ์ฐธ๊ณ )
  8. ํ„ฐ๋ฏธ๋„์— npm run build ์ž…๋ ฅ => build๋ผ๋Š” ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  index.js ํŒŒ์ผ์ด ์ž๋™ ์ƒ์„ฑ๋จ. (ํ•˜๋‹จ ์ด๋ฏธ์ง€ ์ฐธ๊ณ )

// 5. package.json
{
  "name": "ts_starter",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "build": "tsc"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "typescript": "4.7.2"
  }
}

// 6. tsconfig.json
{
    // ์–ด๋””์— ts ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ๊ธฐ
    "include": [
        "src"
    ],
    // ์ปดํŒŒ์ผ ์˜ต์…˜
    "compilerOptions": {
        // ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์ด ์ƒ์„ฑ๋  ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •
        "outDir": "build",
        // ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ช‡ ๋ฒ„์ „์œผ๋กœ ์ปดํŒŒ์ผ ํ• ์ง€ ์„ค์ •
        "target": "ES6",
    },
}

// 7. index.ts

let a: string;

a = "1";

console.log(a);

8. ์ž๋™ ์ƒ์„ฑ๋œ ํด๋”์™€ ํŒŒ์ผ

 

๐Ÿ“ ์ •๋ฆฌ 

  1. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ž€ ํƒ€์ž…์ด ์ถ”๊ฐ€๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ด๋‹ค(์ •ํ™•ํžˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šˆํผ์…‹์ด๋‹ค).
  2. VScode์—์„œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ„๋‹จํ•œ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.
  3. https://www.typescriptlang.org/play๋ฅผ ์ด์šฉํ•˜๋ฉด ์›น์—์„œ ์„ค์ • ์—†์ด ๋ฐ”๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์—ฐ์Šต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๐Ÿ™‹‍โ™‚๏ธ ๋ง๋ถ™์ž„

 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ๋ฒ• ๋ฐ tsconfig.json ์ถ”๊ฐ€ ์‚ฌ์šฉ๋ฒ•์€ ์ฐจํ›„ ํฌ์ŠคํŒ…์—์„œ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค!

 

 

๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) 
ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ๋ง๋ถ™์ผ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์„ธ์š”!
์ œ ๊ธ€์ด ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์ฝ์œผ์‹  ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค
๋‹ค์Œ ํŽธ์— ๋ดฌ์š”~

 

728x90
๋ฐ˜์‘ํ˜•