๐ TypeScript Documentation์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์ ์ ์๊ฒฌ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ฐ์๊ธฐ TypeScript?
๐ก ๋๋ ์๋ฐ๋ฅผ ์กฐ๊ธ ๊ณต๋ถํ๊ธด ํ์์ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ฉด์ ๋ณ์ ํ์ ์ ๋ํด ํฌ๊ฒ ์๊ฐํ์ง ์๊ณ ์ฌ์ฉํ๋ค. ์งง์ ๋(์ฝ๋ฆฐ์ด)์ ์๊ฐ์ผ๋ก , ์ฌ๋ฌ๊ฐ์ง ๋ด ๋ง๋๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉด ์ข์ ๊ฑฐ ์๋๊ฐ?! ์ด๋ ๊ฒ๋ ์ฐ๊ณ ์ ๋ ๊ฒ๋ ์ฐ๊ณ ! ์์ ๋ก์ฐ๋ ์ข์์! ์๊ฐํ๋ค.
๊ทธ๋ฌ๋ ์ฌ๋ฌ ํผ๋๋ฐฑ๊ณผ ์ฝ๋ ์์ ์ผ๋ก ๋๋ก ์ด ์์ ๋ก์์ด ๋ ์ด ๋ ์ ์๋ค๋ ๊ฒ์ ์ ์ ๊นจ๋ซ๊ณ ์๊ณ , ๋ณ์ ํ์ ์ ๋ํด ์ข ๋ ๊ณ ๋ฏผํ๋ฉฐ ์์ ํ๊ณ ์๋ค. ํผ์ ์์ ํ๋ ๊ฒ์ด ์๋๊ธฐ์ ์์ ๋ก์๋ณด๋ค ์์ ์ฑ์ด ๋ ์ค์ํ ๊ฒ์ด๋ค.
๊ทธ๋์ TypeScript๋ก์ ์ด์ ์ ์ํ์ฌ ๊ฒํ ํ๊ณ ์์ผ๋ฉฐ, ๊ทธ๊ฒ์ ๋ํด ํ์ฌ ํ์ด์ง์ ๊ธฐ๋กํ ์์ ์ด๋ค.
๊ฐ์๊ธฐ๊ฐ ์๋๋๋ค
Google, Microsoft, Facebook ๊ฐ์ ํฐ ๊ธฐ์ ์์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๊ณ , ๊ตญ๋ด ๊ธฐ์ ์์๋ ์นด์นด์ค, ๋ฐฐ๋ฌ์ ๋ฏผ์กฑ ๋ฑ ํ๋ก์ ํธ๊ฐ ์ ์ ์ปค์ง๊ณ ์๋ ๊ธฐ์ ๋ค๋ TypeScript๋ฅผ ์ฌ์ฉ ๋๋ ๊ณ ๋ คํ๊ณ ์๋ค. ๋ํ StackOverflow์ Developer Survey์ ๊ฒฐ๊ณผ์์๋ TypeScript๊ฐ ์์๊ถ์ ๋ญํฌ๋์ด ์๊ณ , GitHub์ Octoverse์๋ ์์๊ถ์ ์ฌ๋ผ์ ์๋ค๊ณ ํ๋ค.
TypeScript๊ฐ ์ฝ๋์ ์ง์ ํฅ์ํ๊ณ ์ดํด๋๋ฅผ ๋์ด๊ธฐ ์ํด ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ๋ง์ ์ฌ์ฉ์๋ค์ ์ฌ์ฉ์ผ๋ก ์ ์ ์๋ค.
์์ ๊ธฐ์ ๋ค์ฒ๋ผ ๋ ์์ ์ฑ ์๋ ํ์ ์ ์ํด TypeScript๋ฅผ ์ฌ์ฉํด ๋ณด๋ ๊ฒ๋ ์ข์์ง๋?
TypeScript๋?
TypeScript๋ MicroSoft์์ ๋ง๋ค์๋ค. open sourceํ ๋์ด ์์ผ๋ฉฐ, MicroSoft์์ vscode๋ฅผ ๋ง๋ค ๋ TypeScript๋ก ๋ง๋ค์๋ค๊ณ ํ๋ค!(์ฐ์)
๐ก TypeScript: ์ ์ ํ์ ๊ฒ์ฌ์ (TypeScript: A Static Type Checker)
ํ๋ก๊ทธ๋จ์ ์คํ์ํค์ง ์์ผ๋ฉด์ ์ฝ๋์ ์ค๋ฅ๋ฅผ ๊ฒ์ถํ๋ ๊ฒ์ ์ ์ ๊ฒ์ฌ๋ผ๊ณ ํ๋ค.
TypeScript๋ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ ์ ๊ฐ์ ์ข ๋ฅ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ค๋ฅ๋ฅผ ์ฐพ๋๋ค.
๋ณ์์ ํ์ ์ ์ง์ ํด์ค๋ค
์๋๋ JavaScript์ TypeScript์ ์ฐจ์ด์ ๋ํ ๊ฐ๋จํ ์์ ์ด๋ค.
// JavaScript
let foo;
foo = 1;
foo = 'Hello, JavaScript!'
// TypeScript
let foo: number; // error!
foo = 1;
foo = 'Hello, JavaScript!' // error!
์์ ์์ฒ๋ผ TypeScript๋ ๋ณ์์ ํ์ ์ ์ง์ ํด์ค๋ค.
TypeScript์ ์ฅ์
- ๋ฐํ์ ๋ ํ๋ก๊ทธ๋จ์ด ๊นจ์ง๋ ๊ฒ๋ณด๋ค ์ปดํ์ผ ๋ ์๋ฌ๊ฐ ๋๋ ๊ฒ์ด ์ข๋ค.
- ์ปดํ์ผ ๋ ์ด๋ ๋ถ๋ถ์ด ๊นจ์ง๋์ง ์๋ ค์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฆฌํฉํ ๋ง์ ํธํ๋ค.
- ์ฅ๊ธฐ๊ฐ ์ ์ง๋ณด์์ ํธํ๋ค.
- ๋์ ํ์ดํ์ ๋จ๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ ํฐ ์์ฐ์ฑ์ ๋ณด์ฌ์ฃผ์ง๋ง, ์ฅ๊ธฐ์ ์ผ๋ก ์ ์ง๋ณด์ ํ๋ ๊ฒฝ์ฐ ์ด๋ ค์์ ๋๋ ์ ์๋ค.
- but, ์ฅ๊ธฐ๊ฐ ์ ์ง๋ณด์ ํ ํ์๊ฐ ์๋ค๋ฉด TypeScript๋ ๋ ๋ง์ ์ฝ๋๋ฅผ ์ง์ผํ๊ธฐ ๋๋ฌธ์ ๋์์ด ๋์ง ์์ ์ ์๋ค.
- ํ์ ์ ๋ช ์ํ๋ฏ๋ก ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ฌ์์ง๋ค.
TypeScript๋ ์์ ํ ์๋ก ๊ณต๋ถํด์ผ ํ๋์?
TypeScript๋ JavaScript์ ์์ ์งํฉ์ด๋ฉฐ TypeScript๋ ์ปดํ์ผ ํ์ ํ์ ๊ฒ์ฌ์๊ฐ ์๋ JavaScript์ ๋ฐํ์์ด๋ค. ์์ ๊ทธ๋ฆผ์ฒ๋ผ ES6์ ES5์ ๊ธฐ๋ฅ๋ค๋ ์ง์ํ๋ค.
JavaScript๋ฅผ ๋ฐฐ์ฐ์ง ์๊ณ ์๋ TypeScript๋ฅผ ๋ฐฐ์ธ ์ ์์ผ๋ฉฐ, JavaScript๋ฅผ ์ฌ์ฉํ ์ค ์๋ค๋ฉด TypeScript๋ ๊ธ๋ฐฉ ์ตํ ์ ์๋ค๊ณ ํ๋ค.
์๋ ๋งํฌ๋ TypeScript ํ๊ธ ๋ฌธ์์ด๋ค. ์น์ ํ๊ฒ ํ๊ธ๋ก๋ ๋ฒ์ญ๋์ด์๋ค๋! ๐ฅบ
TypeScript ๊ธฐ๋ณธ ๋ฌธ๋ฒ
์๋๋ TypeScript ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋ํ ๋ช๊ฐ์ง ์์ ์ด๋ค.
ํ์ ํ๊ธฐ (Type Annotation)
์๋ณ์ ๋๋ ๊ฐ ๋ค์ ์ฝ๋ก (:)์ ๋ถ์ฌ value: type์ ํํ๋ก ํ๊ธฐํ๋ค.
let foo: number = 1;
๋ฐฐ์ด
์๋ฐ์คํฌ๋ฆฝํธ Array ๊ฐ์ ํ์ ์ ๋ํ๋ด๋๋ฐ ์ฐ์ด๋ฉฐ ์์ ํ์ ๋ค์ ๋๊ดํธ([])๋ฅผ ๋ถ์ฌ ํํํ๋ค.
let foo: string[] = ['Hello', 'TypeScript', 'World!'];
ํํ
์์์ ์์ ๊ฐ ์์์ ํ์ ์ด ์ ํํ ์ง์ ๋ ๋ฐฐ์ด์ ํ์ ์ ์ ์ํ ์ ์๋ค.
let foo: [string, number] = ['I love you', 3000];
๋ง์น๋ฉฐ
์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ๋จํ TypeScript์ ์ค๋ช ๊ณผ ๋ช๊ฐ์ง ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋ํด์ ๊ธฐ๋กํด๋ณด์์ต๋๋ค.
๋ค์ ํฌ์คํ ์์๋ TypeScript ๋ฌธ๋ฒ์ ๋ํด ๋ ์์ธํ๊ฒ ๊ธฐ๋กํ ์์ ์ ๋๋ค.
์ฐธ๊ณ ํ ๋ฌธ์ ๋ฐ ๊ธ
https://typescript-kr.github.io
https://ahnheejong.gitbook.io/ts-for-jsdev/
https://roylory.gitbooks.io/typescript-book-ko/content/
https://velog.io/@hyun_sang/TypeScript๋ฅผ-์ฌ์ฉํ๋-์ด์ ๋
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ณ์์ ์ข ๋ฅ (0) | 2023.01.04 |
---|---|
์ปดํจํฐ๊ฐ ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ (0) | 2023.01.04 |
async, await, Promise ๊ทธ๋ฆฌ๊ณ ๋๊ธฐ์ ๋น๋๊ธฐ (2) | 2023.01.04 |
node ๋ฒ์ ์ ๋ฐ์ดํธ ํ๊ธฐ (0) | 2023.01.04 |
use strict๋? ์ ์ฐ๋๊ฑฐ์ผ? (2) | 2023.01.04 |