TypeScript๋?
- Microsoft์์ ๊ฐ๋ฐํ ์คํ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค.
- JavaScript์ ํ์ฅ์ผ๋ก, JavaScript์ ๋ชจ๋ ๊ธฐ๋ฅ์ ํฌํจํ๋ฉด์๋ ์ ์ ํ์ ์ ์ง์ํ๊ณ ์์ต๋๋ค.
์ TypeScript๋ฅผ ์ฐ๋๊ฐ?
1. ํ์ ์์ ์ฑ
- ํ์ ์์ ์ฑ(Type Safety)์ ๋ณ์๋ ํจ์ ๋ฑ์ด ์ ์๋ ํ์ ๊ณผ ์ผ์นํ๋์ง ์ฌ๋ถ๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ํ์ ์์ ์ฑ์ ํตํด ์ป๋ ๊ฒ
- ์ปดํ์ผ ํ์ ํ์ ์ฒดํฌ : ์ปดํ์ผ ๊ณผ์ ์์ ํ์ ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๊ฒฝ๊ณ ๋ ์ค๋ฅ๋ฅผ ํตํด ๊ฐ๋ฐ์์๊ฒ ์๋ ค์ค๋๋ค.
- ๊ฐ๋ ฅํ ํ์ ์์คํ : ํ์ ์ด ๋ช ํํ๊ฒ ์ง์ ๋์ด์ผ ํ๊ณ , ํ์ ์ ๋ํ ์๊ฒฉํ ๊ท์น์ ๊ฐ์ง๋๋ค.
- ํ์ ์ถ๋ก : ํ์ ์ ๋ช ์์ ์ผ๋ก ์ง์ ํ์ง ์์๋ ์ปดํ์ผ๋ฌ๊ฐ ํ์ ์ ์ถ๋ก ํด์ค๋๋ค.
- ํ์ ์์ ์ฑ ๋๋ถ์ ๋ฒ๊ทธ์ ๋ฐํ์ ์๋ฌ๋ฅผ ์ค์ผ ์ ์๊ณ , ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
2. ํ์ ๊ด์
- ํ์ ์ ๋ช ํํ๊ธฐ ์ ์ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ๋ ํผ๋์ ์ค์ฌ์ค๋๋ค.
TypeScript ํน์ง
1. ์ปดํ์ผ ํ๋ฉด JavaScript๋ก ๋ณํ
- ๊ธฐ๊ณ์ด๋ก ์ปดํ์ผ ๋๋ ๋ค๋ฅธ ์ ์ ์ธ์ด์ ๋ค๋ฅด๊ฒ JavaScript๋ก ์ปดํ์ผ ๋ฉ๋๋ค.
- TypeScript๊ฐ ๋จผ์ ์ฝ๋๋ฅผ ํ์ธํ๊ณ , ์๋ฌ๊ฐ ์๊ฑฐ๋ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ปดํ์ผ ๋์ง ์์ต๋๋ค.
- ๋ฐ๋ผ์ ๋ฐํ์์ด ์๋๋ผ ์ปดํ์ผ ํ์์ ์๋ฌ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
- JavaScript๋ก ๋ณํ๋๋ฏ๋ก NodeJS์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
2. ํ์ ์ ๋ช ์ํด๋ ๋๊ณ ์ ํด๋ ๋๋ค.
- TypeScript๊ฐ ํ์
์ถ๋ก (type inference)์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ํ์
์ฃผ์์ ๋ช
์ํ์ง ์์๋ ๋ฉ๋๋ค.
๋ณ์ ์ด๋ฆ: ํ์ = ์ด๊น๊ฐ
ํํ๋ก ํ์ ์ ๋ช ์ํ๋ ๊ฒ์ ํ์ ์ฃผ์(type annotation)์ด๋ผ๊ณ ํฉ๋๋ค.- ํ์ ์ฃผ์์ ์ฐ์ง ์์๋ ํ์ ์ถ๋ก ์ ํตํด ์ด๊น๊ฐ์ ํด๋นํ๋ ํ์ ์ผ๋ก ์ง์ ๋ฉ๋๋ค.
- ํ์
ํ๊ธฐ๋ฅผ ์ ๊ฒ ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. [์ฐธ๊ณ ]
- ์ฝ๋๊ฐ ๋ ์งง๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋๋ค. ํ์ ์ถ๋ก ์ ์ด์ฉํฉ์๋ค.
// ํ์ ํ๊ธฐ X (๊ถ์ฅ) let a = "hello"; a = "bye"; a = 1; // JS์์๋ ๋์ง๋ง TS์์๋ ์๋ฌ // ํ์ ํ๊ธฐ O let b: boolean = false;
'Language > TypeScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TypeScript] ์ค์ฒฉ๋ ๊ฐ์ฒด์ ๊ฐ์ ํ์ ์ผ๋ก ๋ง๋ค๊ณ ์ถ์ ๋ (0) | 2024.12.31 |
---|---|
[TypeScript] Class vs Interface vs Type ์ฐจ์ด์ ์ ๋ฆฌ (0) | 2024.08.07 |
[TypeScript] Declaration File & JSDoc (1) | 2024.08.07 |
[TypeScript] TypeScript ํ์ ์ ๋ฆฌ (0) | 2024.08.07 |
[TypeScript] TypeScript ์๋์ผ๋ก ์ค์ ํ๊ธฐ (0) | 2024.08.07 |