# * Introduction
ํ์ ์คํฌ๋ฆฝํธ ๊ณต์ํ์ด์ง์ ๋ค์ด๊ฐ๋ฉด ๋ฉ์ธ์ ์๋์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ์ ํ์๋ค.
- TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปดํ์ผ๋๋, ์๋ฐ์คํฌ๋ฆฝํธ์ ์์์งํฉ์ด๋ค.
# Superset of Javascript
ํ์
์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์์งํฉ์ด๋ค.
ํ์
์คํฌ๋ฆฝํธ๋ ES5, ES6์ superset์ผ๋ก ๊ธฐ์กด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ,
ES6์ ์๋ก์ด ๋ฉ์๋๋ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ณ๋์ Transpiler(์: babel)์ ํ์๋ก ํ์ง ์๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ์ ๋ธ๋ผ์ฐ์ ์ ์์ง ํน์ Node.js๋ฅผ ํตํด ์คํ ํ ์ ์๋ค.
TypeScript ์ปดํ์ผ๋ฌ๋ TypeScript ๋ฌธ๋ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ผ๋ก ๋ณํ์์ผ์ฃผ๋ฉฐ,
์ด๋ ์ฝ๋์์ ๋ณ์๋ฅผ ์ ์ํ ์์๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์๋๋ค.
๋ฐ๋ผ์, ์๋ฐ์คํฌ๋ฆฝํธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ธ๋ผ์ฐ์ ์์ ๋๋ฒ๊น
ํ์ฌ TypeScript ์ฝ๋๋ฅผ ์์ ํ๊ธฐ์๋ ์ฉ์ดํ๋ค.
# TypeScript์ ์ญ์ฌ
JavaScript๊ฐ ๋๊ท๋ชจ ์ดํ๋ฆฌ์ผ์ด์
์ ์ ํฉํ์ง ์๋ค๋ ํ๊ณผ ๊ณ ๊ฐ์ฌ์ ๋ถํ๋ค์ ํด์ํ๊ธฐ ์ํด
ํต์ฌ ๊ฐ๋ฐ์์ธ Anders Hejlsberg ๋ฆฌ๋ํ์ TypeScript
ํ์ํ๊ฒ ๋์๋ค.
ํ์
์คํฌ๋ฆฝํธ์ ๋ฐฉํฅ๊ณผ ๋ชฉํ๋ ํ์
์คํฌ๋ฆฝํธ ์ํค ๋ก๋๋งต์ ํตํด ํ์ธ ๊ฐ๋ฅํ๋ค.
# TypeScript์ ์ฅ์
Javascript ํ์ค๊ณผ ์ํธ ํธํ
- ์๋ํํฐ ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฌ๋์ปค๋ธ๊ฐ ๋ค๋ฅธ Javascript ์ปดํ์ผ ์ธ์ด๋ค(Dart, CoffeeScript ๋ฑ)์ ๋นํด ๋น๊ต์ ์๋งํ๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋๋ ๋น์ฉ์ด ์ ๋ค.
์ ์ ํ์
- ์ปดํ์ผ ๋จ๊ณ์์ ์ค๋ฅ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
- ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๋ฉฐ, ๋๋ฒ๊น ์ ์์ฝ๊ฒ ํ ์ ์๋ค.
์ง์ ๋ฐ ์ปค๋ฎค๋ํฐ
- TypeScript๋ ๊ณต์์ ์ผ๋ก Microsoft ์ ์ง์์ ๋ฐ๋๋ค.
- ํ์ ์คํฌ๋ฆฝํธ๋ ์ฝ 2-3๋ฌ์ ๊ธฐ์ค์ผ๋ก ๋ง์ด๋ ๋ฒ์ ์ด ์ ๋ฐ์ดํธ ๋๊ณ ์๋ค.
- Friends of TypeScript์์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ธ๊ณ ๊ธฐ์ ๋ค์ ํ์ธ ํ ์ ์๋ค.
- Angular2 ๋ TypeScript๋ฅผ ์ ์์ผ๋ก ์ฑํํ๊ณ , ๋ง์ ์ ์๋ค์ด ์ปค๋ฎค๋ํฐ์ ๊ณ์๋๊ณ ์๋ค.
- IDE์ ๊ฐ์ ๋๊ตฌ์ ํ์ ์ ๋ณด ์ ๊ณต์ ํตํด ์ฝ๋์ด์์คํธ, ํ์ ์ฒดํฌ, ๋ฆฌํฉํ ๋ง ๋ฑ์ ์ง์๋ฐ์ ์ ์๋ค.
- TypeScript๋ ๊ณต์์ ์ผ๋ก Microsoft ์ ์ง์์ ๋ฐ๋๋ค.