ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๋ ์ด์ ?
ํ์
์คํฌ๋ฆฝํธ๋ ๋ฐฐํฌ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปดํ์ผํด์ผํ๋๋ฐ ๊ตณ์ด ์ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์จ์ผํ ๊น.
ํ์
์คํฌ๋ฆฝํธ๋ 2012๋
microsoft์์ ์คํ์์ค๋ก ๊ณต๊ฐํ ์ปดํ์ผ ํฌ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด.
ํ์
์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํธ๋์คํ์ผ(transpile) ํด์ผ ๋ธ๋ผ์ฐ์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์์ ์คํ๋จ.
ํธ๋์คํ์ผ : ํ ์ธ์ด์ ์์ค ์ฝ๋๋ฅผ ๋น์ทํ ์ถ์ํ ์์ค์ ๋ค๋ฅธ ์ธ์ด๋ก ๋ณํํ๋ ๊ฒ.
์ปดํ์ผ : ์๋ก ๋ค๋ฅธ ์ถ์ํ ์์ค์ ์ธ์ด๋ก ๋ณํํ๋ ๊ฒ(ts์์ ํธ์์ ์ปดํ์ผ๋ก ๋ถ๋ฆ)
ํ์
์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์์งํฉ์ผ๋ก ๋ชจ๋ ECMA๋ฒ์ ์ jsํ์ผ์ ์ฌ์ฉํ ์ ์๋ค.
ex) js-> .ts๋ก ๋ณ๊ฒฝ ํ ๊ฐ์ฒด ํ๋กํผํฐ ํ์
์ ์ ์ํ๊ฑฐ๋ ํ์
๊ณผ ๊ด๋ จ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๊ณผ์ ์ ์งํ
ํ์ ์คํฌ๋ฆฝํธ๋ ์ ์ ํ์ดํ, ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ ํ์ดํ๋ง์ ์ง์ํ๋ค.
๋๋ฌธ์ ๋ฐ๋์ ํ์ ์ ํ ๋นํด์ผํฉ๋๋ค.
๋น๊ต
ํ์ ์คํฌ๋ฆฝํธ
let customerId: string;
customerId = 123; // ์ปดํ์ผ ์ค๋ฅ
์๋ฐ์คํฌ๋ฆฝํธ
let customerId: 'A15BN'; // customerId๋ ๋ฌธ์์ด
customerId = 123; // ์ซ์๋ก ๋ณ๊ฒฝ๋จ.
funciton getFinalPrice(price, discount){
return price - price/discount;
}
console.log(getFinalPrice(100, 10%));
ํ๋ผ๋ฏธํฐ๊ฐ ๋ฌธ์์ด ํ์ ์ด๋ผ๋ฉด NaN์ ๋ฐํ.
ํจ์๋ฅผ ์๋ชป ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์. => ํ๋ผ๋ฏธํฐ์ ํ์ ์ ์ ์ํด ์ค๋ฅ ๋ฐฉ์ง.
bit.ly/3rcBsp()์์ ์ฝ๋๋ฅผ ํ์ธํด ๋ณด๋ฉด ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ tsc๊ฐ ์ปดํ์ผ ์ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ณ ๊ฒฝ๊ณ ํด์ค
โ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ๋ชฉํด์ผํ๋ ์ด์ ๋ ECMA์คํฌ๋ฆฝํธ ํ์ค์ ๋ฐ๋ฅด๋ฉฐ ์น๋ธ๋ผ์ฐ์ ๋ณด๋ค ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
bit.ly/3rcBsp()
www.typescriptlang.org