๐ก 1. TypeScript๋?
ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํผ์ ์ธ ์คํ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค. ๋ง์ดํฌ๋ก์ํํธ์์ ๊ฐ๋ฐ, ์ ์งํ๊ณ ์์ผ๋ฉฐ ์๊ฒฉํ ๋ฌธ๋ฒ์ ์ง์ํ๋ค. - ์ํค๋ฐฑ๊ณผ
์ํค๋ฐฑ๊ณผ์์๋ ์์ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ง๋ง, TypeSript(์ดํ TS)๋ ํ์ ์ด ์๋ JS๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค.
์ํค๋ฐฑ๊ณผ ์ค๋ช ์ค ์ํผ์ ์ด๋ผ๋ ๋จ์ด๊ฐ ์๋๋ฐ, ์ด๋ JS์ ๊ฐ๋ ์ ํฌํจํ๊ณ ํ์ฅ๋ ๊ฐ๋ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋์ JS๋ฅผ ์๊ณ ์๋ค๋ฉด, TS๋ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๐ฃ 1.1 ํ์ ์ด๋?
์ ์ค๋ช ์์ TS๋ ํ์ ์ด ์๋ JS๋ผ๊ณ ๋ง์๋๋ ธ๋๋ฐ์. ์ฌ๊ธฐ์ ๋งํ๋ ํ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฐ์ด๋ String, Number, Boolean ๋ฑ๊ณผ ๊ฐ์ ํ์ ์ ์๊ธฐํฉ๋๋ค.
๐ก 2. VSCode์์ TS ์ธํ ํ๊ธฐ ์์
- ์๋ก์ด ํด๋ ์์ฑ
- ์์ฑํ ํด๋๋ฅผ vscode๋ก ์คํ
- ํฐ๋ฏธ๋์ npm init -y ์
๋ ฅ
๋๋ณด๊ธฐnpm init -y๋ฅผ ์คํํ๋ฉด package.json ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. ๊ทธ ํ์ผ์์๋ ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ์ธํ ์ ํ ์ ์์ต๋๋ค.
- ํฐ๋ฏธ๋์ npm install -D typescript ์
๋ ฅ
๋๋ณด๊ธฐnpm install -D typescript๋ฅผ ์คํํ๋ฉด ํด๋น ํ๋ก์ ํธ์ TS๊ด๋ จ ๋ชจ๋๋ค์ด ์ค์น๊ฐ ๋ฉ๋๋ค. ์ด๋ -D๋ฅผ ์ด์ฉํ์ฌ ์ค์นํ๋ฉด devDependencies์ ์ค์น๊ฐ ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ, --production ์ต์ ์ ์ถ๊ฐํ์ฌ ๋ฐฐํฌํ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ ๋, devDependencies์ ์๋ ํจํค์ง๋ค์ ๋ฐฐํฌ๋์ง ์์ต๋๋ค.
- package.json ํ์ผ => "main"์ญ์ , "script"์์ "test"๋ ์ญ์ , "build" : "tsc"์ถ๊ฐ (ํ๋จ ์ฝ๋ ์ฐธ๊ณ )
- tsconfig.json ํ์ผ ์์ฑ ๋ฐ ์ ๋ ฅ (ํ๋จ ์ฝ๋ ์ฐธ๊ณ )
- src๋ผ๋ ํด๋ ์์ฑ => index.ts ํ์ผ ์์ฑ => ๊ฐ๋จ ์ฝ๋ ์์ฑ (ํ๋จ ์ฝ๋ ์ฐธ๊ณ )
- ํฐ๋ฏธ๋์ 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);
๐ ์ ๋ฆฌ
- ํ์ ์คํฌ๋ฆฝํธ๋ ํ์ ์ด ์ถ๊ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ด๋ค(์ ํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํผ์ ์ด๋ค).
- VScode์์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ฐ๋จํ ์ค์ ์ด ํ์ํ๋ค.
- https://www.typescriptlang.org/play๋ฅผ ์ด์ฉํ๋ฉด ์น์์ ์ค์ ์์ด ๋ฐ๋ก ํ์ ์คํฌ๋ฆฝํธ ์ฐ์ต์ด ๊ฐ๋ฅํ๋ค.
๐โ๏ธ ๋ง๋ถ์
ํ์ ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ ๋ฐ tsconfig.json ์ถ๊ฐ ์ฌ์ฉ๋ฒ์ ์ฐจํ ํฌ์คํ ์์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค!
๊ธด ๊ธ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค :)
ํ๋ฆฐ ๋ด์ฉ์ด ์๊ฑฐ๋, ๋ง๋ถ์ผ ๋ด์ฉ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ ๋ฌ์์ฃผ์ธ์!
์ ๊ธ์ด ์กฐ๊ธ์ด๋๋ง ์ฝ์ผ์ ๋ถ๋ค์๊ฒ ๋์์ด ๋๋๋ก ๋
ธ๋ ฅํ๊ฒ ์ต๋๋ค
๋ค์ ํธ์ ๋ดฌ์~