let a = 1; a = "Hello"; ๊ฐ ์ผ๋ง๋ ์ง ๊ฐ๋ฅํ ๊ฒ์ด๊ณ ์ฝ๊ฐ์ ์ค์๋ก ์์ํ์ง ์์ ๋์์ด ๋ฐ์ํ ์ ์์const obj = { latitude: 11.5, longitude: 47.1 };
const result = obj.latitude * obj.longitute; // ๋ณดํต์ ์ด๋ฐ ์ค์๋ ์ปดํ์ผ๋ฌ๊ฐ ์ก์์ค์ผ ๋๋๋ฐ
console.log(result) // NaN์ด๋ผ๋ ์๋ฑํ ๊ฐ ์ถํ!
๊ฐ์ฒด๋ ์บ๋ฆญํฐ๊ฐ ํ์คํด์ผ ํจ
๋ถ์ด๋นต์ ์ฐ๋ ํ์์ ์๋ณด๋ฃจ๋นต์ด ๋์ค๋ฉด ์ ๋๋ ๊ฒ ์ฒ๋ผ
Microsoft์์ ๊ฐ๋ฐํ ์คํ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์ ๋ฑ์ฅํ๋์ง?
์ฅ์
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
growOlder() {
this.age += 1;
}
}
const spartan = new Person('Spartan', 30);
spartan.age = 25; // ์ธ๋ถ์์ age ์์ฑ์ ๋ง์๋๋ก ์กฐ์ํ ์ ์์ด์! ๋ป๋ฐ์ ํ์ถ?
spartan.growOlder();
console.log(spartan.age); // ๊ฒฐ๊ตญ 1์ด์ ๋ ๋จน์์ง๋ง ๋ฅดํ์ด๋ 26์ธ
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด (C++, Java, C#, ...)์์๋ ๋ค์ํ ์ ๊ทผ ์ ์ด์๋ฅผ ํตํด์ ํด๋์ค๋ฅผ ๊ตฌ์ฑํ๋ ํ๋กํผํฐ์ ์บก์ํ๋ฅผ ๋ณด์ฅ / ํจ์์ ํธ์ถ ๋ฒ์๋ฅผ ์กฐ์
d.ts ๋ผ๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ์ ์ธ ํ์ผ์ ํตํด ์ธ๋ถ ๋ชจ๋ ํ์ ์ ๋ณด๋ฅผ ์ ๊ณต
ํฅ์๋๋ ์์ฐ์ฑ
๋์์ง๋ ์์ ์ฑ
์ค์ด๋๋ ํ ์คํธ ์ฝ๋
์ค์น
yarn create react-app "ํด๋๋ช
" --template typescript
ํน์
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh
nvm install [์ค์นํ ๋
ธ๋ ๋ฒ์ ]
npm -v
npm i typescript -g
tsc
ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ์ ์ธ์ด๋ก์์ ์ ์ฒด์ฑ์ ์ ์งํ ์ ์๊ฒ ํ๋ ๋๊ตฌ
์ปดํ์ผ๋ฌ์ ๊ทผ๋ณธ์ ์ธ ์ญํ
ํ์ ๊ฒ์ฌ๋ฅผ ํด์ค
์ฝ๋ ๋ณํ
์ปดํ์ผ๋ฌ์ ๋งค๋ ฅ
์๋ฌ ๋ฉ์ธ์ง ํด์ํ ๋ ๋์์ ๋ฐ์ ์ ์์
์ปดํ์ผ๋ฌ์ ๋์ ์ต์ ํ
tsc์ ๋ํด์
JavaScript๋ ๊ธฐ๊ณ์ด๋ก ๋ณํ๋ ํ์ X
๋์ ์ธ์ด (= ์ธํฐํ๋ฆฌํฐ ์ธ์ด)์ด๊ธฐ ๋๋ฌธ
์ ์ ์ธ์ด (์ปดํ์ผ ์ธ์ด) -> ๊ธฐ๊ณ์ด๋ก ๋ณํ ๋์ด์ผ ํจ
๋์ ์ธ์ด (์ธํฐํ๋ฆฌํฐ ์ธ์ด) -> ์์ง์ด ์ฝ๋๋ฅผ ํ ์ค์ฉ ์คํํ๋ฉด์ ๋์ ์ผ๋ก ํด์
tsc ์ฃผ์ ๋ช ๋ น์ด
tsc --init : tsconfig.json์ด ์์ฑ๋๋ ๋ช
๋ น์ด
tsc index.ts : index.ts๋ฅผ ์ปดํ์ผ
tsc src/*.ts : src ๋๋ ํ ๋ฆฌ ์์ ์๋ ๋ชจ๋ ts ํ์ผ์ ์ปดํ์ผ
tsc index.js --declaration --emitDeclarationOnly : @types ํจํค์ง๋ฅผ ์ํ .d.ts ํ์ผ ์์ฑ
tsconfig.json ํด๋ถํ๊ธฐ
compilerOptions - strict์ต์ ์ true๋ก ์ค์ ํด์ฃผ์๋ ๊ฒ์ ๊ถ์ฅ
compilerOptions - sourceMap์ต์ ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ true๋ก ์ค์ ํด์ฃผ์๋ ๊ฒ์ ๊ถ์ฅ
tsc --init ๋ช
๋ น์ ์คํํ๋ฉด ์์ฑ๋๋ ํ์ผ
TypeScript ํ๋ก์ ํธ์ ์ค์ ํ์ผ
์ปดํ์ผ ์ต์
๋ฐ ์
๋ ฅ ํ์ผ๋ค์ ์ ์ํ๋๋ฐ ์ฌ์ฉ
compilerOptions - targer ์ต์

compilerOptions - module ์ต์
compilerOptions - outDir ์ต์
"outDir": "dist"๋ก ์ค์ ํ๋ฉด ์ปดํ์ผ๋ ํ์ผ๋ค์ด dist ํด๋์ ์ ์ฅcompilerOptions - sourceMap ์ต์
include, exclude ์ต์