[TypeScript] ๐Ÿณ 1.1 ์™œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์ธ๊ฐ€

์กฐ์ค€ํ˜•ยท2021๋…„ 11์›” 1์ผ
0

TypeScript

๋ชฉ๋ก ๋ณด๊ธฐ
2/11
post-thumbnail

๐Ÿณ 1์žฅ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ฐ๋Š” ์ด์œ ?
ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋„ ๋ฐฐํฌ์ „์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ปดํŒŒ์ผํ•ด์•ผํ•˜๋Š”๋ฐ ๊ตณ์ด ์™œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์จ์•ผํ• ๊นŒ.

๐ŸŒ 1.1 ์™œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์ธ๊ฐ€

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” 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

profile
๊นƒํ—ˆ๋ธŒ : github.com/JuneHyung

0๊ฐœ์˜ ๋Œ“๊ธ€