TypeScript๋ Microsoft์์ ๊ฐ๋ฐํ ์คํ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค.
๊ธฐ์กด JavaScript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋, ์ ์ ํ์
(static typing) ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์์ ์ธ์ด์
๋๋ค.
์ฆ, JavaScript์ ๋จ์ ์ ๋ณด์ํ๋ฉด์ ๋ ์์ ์ ์ด๊ณ ๊ท๋ชจ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค๊ธฐ ์ํ ๋๊ตฌ์
๋๋ค.
โ JavaScript + Type = TypeScript
| ํน์ง | ์ค๋ช |
|---|---|
| ๐ ์ ์ ํ์ ๊ฒ์ฌ | ๋ณ์, ํจ์์ ํ์ ์ ๋ช ์ํ ์ ์์ผ๋ฉฐ ์ปดํ์ผ ์์ ์ ํ์ ์ค๋ฅ ๊ฐ์ง |
| โฑ ๋น ๋ฅธ ์ค๋ฅ ๊ฒ์ถ | ์คํ ์ ์ ๋ฒ๊ทธ๋ฅผ ํ์ธํ ์ ์์ (๋ฐํ์ ์๋ฌ ๊ฐ์) |
| ๐ฏ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ง์ | ํด๋์ค, ์ธํฐํ์ด์ค, ์์ ๋ฑ ์ง์ |
| ๐งฉ JavaScript 100% ํธํ | JS ๋ฌธ๋ฒ ๊ทธ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅ, ์ ์ง์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅ |
| ๐ ๋๊ตฌ ์นํ์ฑ | VS Code ๋ฑ IDE์์ ๊ฐ๋ ฅํ ์๋์์ฑ, ๊ฒฝ๊ณ , ๋ฆฌํฉํ ๋ง ์ง์ |
let name: string = "ํ๊ธธ๋";
let age: number = 30;
let isAdmin: boolean = true; let numbers: number[] = [1, 2, 3];
let user: { name: string; age: number } = {
name: "์ฒ ์",
age: 25
}; function add(x: number, y: number): number {
return x + y;
} interface Person {
name: string;
age: number;
}
const person: Person = {
name: "์ํฌ",
age: 22
}; class Animal {
constructor(public name: string) {}
speak(): void {
console.log(`${this.name}์ด(๊ฐ) ์๋ฆฌ๋ฅผ ๋
๋๋ค.`);
}
}
const dog = new Animal("๊ฐ์์ง");
dog.speak(); type Status = "success" | "error" | "loading";
let currentStatus: Status = "success"; npm install -g typescript # TypeScript ์ค์น
tsc --init # tsconfig.json ์์ฑ
tsc index.ts # TypeScript โ JavaScript ์ปดํ์ผ | ๊ธฐ๋ฅ | ์์ |
|---|---|
| ์ ๋ค๋ฆญ (Generic) | function identity<T>(arg: T): T |
| ํ์ ์ถ๋ก | let name = "hello"; โ string ์๋ ์ถ๋ก |
| ์ ํ์ ์์ฑ | interface User { name: string; age?: number } |
| readonly | ์ฝ๊ธฐ ์ ์ฉ ์์ฑ ์ง์ |
| ํ์ ๊ฐ๋ | if (typeof value === "string") { ... } |
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ์ธ์ด๋ช | TypeScript |
| ๊ธฐ๋ฐ ์ธ์ด | JavaScript |
| ํต์ฌ ๊ธฐ๋ฅ | ์ ์ ํ์ ๊ฒ์ฌ, ํด๋์ค, ์ธํฐํ์ด์ค, ์ ๋ค๋ฆญ |
| ๋ํ ํ์ฉ ๋ถ์ผ | ํ๋ก ํธ์๋(React, Angular, Vue), Node.js ๋ฐฑ์๋ |
| ์ ํฉํ ๋์ | ์ค/๋ํ ํ๋ก์ ํธ, ํ์ , ์ฅ๊ธฐ ์ ์ง๋ณด์ ํ๋ก์ ํธ |
์์์ ์ ํ ์ ๋ฐ๋์ ํ์ธํด์ผ ํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๊ณต๊ฐํฉ๋๋ค. ๊ณต์ ํ๊ฐ ์๋ฃ ์กฐํ๋ฒ, ๋ฐฉ๋ฌธ ์ ํ์ธ…
๊ณต๊ณต๊ธฐ๊ด ์ฑ์ฉ ๋น๋ฆฌ์ ์คํ์ ํผํด ์ง์์์ ๋์๋ฒ์ ์ ๋ฆฌํ์ต๋๋ค. ์ฑ์ฉ ๋น๋ฆฌ ์ ๊ณ ๋ฐฉ๋ฒ, ๊ณต์ต์ ๊ณ ์ ๋ณดํธ์ ๋, ์ทจ์ค์…
์ฃผ์ ์์ค์ ์ธ๊ธ ์ ์ฝ์ ํ์ฉํ๋ ํฉ๋ฒ์ ๋ฐฉ๋ฒ์ ๊ณต๊ฐํฉ๋๋ค. ํด์ธ์ฃผ์ ์์ตํต์ฐ, ISA ๊ณ์ข ํ์ฉ, ์ฐ๊ธ๊ณ์ข ์ ์ธ๊น์ง…
๋ฐฐ๋ฌ์ด ์์ ์๊ฐ๋ณด๋ค ํฌ๊ฒ ๋ฆ์ผ๋ฉด ์ทจ์ยทํ๋ถ์ ์์ฒญํ ์ ์์ต๋๋ค. ๋ฐฐ๋ฌ์ฑ๋ณ ์ง์ฐ ์ทจ์ ๋ฐฉ๋ฒ๊ณผ ์๋ชป ๋ฐฐ๋ฌ๋์…
ํต์ ๋น ์ ์ฝ์ ํต์ฌ์ ์๊ธ์ ์ต์ ํ์ ๋๋ค. ๋ด ๋ฐ์ดํฐ ์ฌ์ฉ๋ ํ์ธ๋ฒ, ์๋ฐํฐ ์ ํ ๋น๊ต, ์์ฝ๊ธ ์์ด ์๊ธ์ …
ํด์ง ํ ํด์ง๊ธ์ ๋ฐ์ง ๋ชปํ๋ค๋ฉด ์ฆ์ ๋ ธ๋๋ถ์ ์ ๊ณ ํ์ธ์. ์ง๊ธ ๊ธฐํ, ์๊ฒฉ ์๊ฑด, ์ ๊ณ ๋ฐฉ๋ฒ, ์์ก์ฒด๋น๊ธ…