JavaScript ์–ธ์–ด์— ์œ ํ˜• ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Microsoft, Igalia ๋ฐ Bloomberg๋Š” TypeScript ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๋ช…์‹œ์  ์œ ํ˜• ์ •์˜๋ฅผ ์œ„ํ•ด JavaScript ์‚ฌ์–‘์— ๊ตฌ๋ฌธ์„ ํฌํ•จ์‹œํ‚ค๋Š” ๋ฐ ์•ž์žฅ์„ฐ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ECMAScript ํ‘œ์ค€์— ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋œ ํ”„๋กœํ† ํƒ€์ž… ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์˜ˆ๋น„ ๋…ผ์˜(0๋‹จ๊ณ„)๋ฅผ ์œ„ํ•ด ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 39์›”์— ์—ด๋ฆฌ๋Š” TCXNUMX ์œ„์›ํšŒ์˜ ๋‹ค์Œ ํšŒ์˜์—์„œ๋Š” ECMA์˜ ์ „๋ฌธ๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ฐธ์—ฌํ•˜์—ฌ ์ œ์•ˆ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ๊ณ ๋ ค ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐˆ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์œ ํ˜• ์ •๋ณด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๋ฉด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ค‘ ๋งŽ์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ์ถ”๊ฐ€ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋””๋ฒ„๊น…์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ  ์ œXNUMX์ž ๊ฐœ๋ฐœ์ž์˜ ์ˆ˜์ • ๋ฐ ์ง€์›์ด ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ์œ ํ˜• ์ง€์›์€ ์„ ํƒ์  ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„๋˜๋„๋ก ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜• ๊ฒ€์‚ฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” JavaScript ์—”์ง„ ๋ฐ ๋Ÿฐํƒ€์ž„์€ ์œ ํ˜• ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ฃผ์„์„ ๋ฌด์‹œํ•˜๊ณ  ์ด์ „๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์œ ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ ํ˜• ๊ฒ€์‚ฌ ๋„๊ตฌ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž˜๋ชป๋œ ์œ ํ˜• ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ฃผ์„ ํ˜•์‹์œผ๋กœ ์ง€์ •๋œ JSDoc ์ฃผ์„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ์œ ํ˜• ์ •๋ณด์™€ ๋‹ฌ๋ฆฌ ๋ณ€์ˆ˜ ์ •์˜ ๊ตฌ์„ฑ์—์„œ ์ง์ ‘ ์œ ํ˜•์„ ์ง์ ‘ ํ‘œ์‹œํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋”์šฑ ์‹œ๊ฐ์ ์ด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ํŽธ์ง‘ํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด TypeScript๋ฅผ ์ง€์›ํ•˜๋Š” IDE๋Š” ์ถ”๊ฐ€ ๋ณ€ํ™˜ ์—†์ด ์ž…๋ ฅ๋œ JavaScript ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜๋ฅผ ์ฆ‰์‹œ ๊ฐ•์กฐ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด์žฅ๋œ ์œ ํ˜• ์ง€์›์„ ํ†ตํ•ด ํ•œ ์–ธ์–ด์—์„œ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๊ณ ๋„ TypeScript ๋ฐ Flow์™€ ๊ฐ™์€ ์œ ํ˜•์ด ์ง€์ •๋œ JavaScript ๋ฐฉ์–ธ์œผ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JavaScript ์–ธ์–ด์— ์œ ํ˜• ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œ ํ˜• ์ค‘์—๋Š” ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜, ๊ฐ์ฒด ์š”์†Œ, ํด๋ž˜์Šค ํ•„๋“œ, ์œ ํ˜• ๋ฐฐ์—ด("number[]")์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "string", "number" ๋ฐ "boolean"์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ๋œ ์œ ํ˜•("๋ฌธ์ž์—ด | ์ˆซ์ž") ๋ฐ ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋„ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. x: ๋ฌธ์ž์—ด์„ ๋ณด์ž; function add(a: ์ˆซ์ž, b: ์ˆซ์ž) { return a + b; } ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ๋žŒ { ์ด๋ฆ„: ๋ฌธ์ž์—ด; ๋‚˜์ด:์ˆซ์ž; } ํ•จ์ˆ˜ foo (x:T) { x๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค; } ํ•จ์ˆ˜ foo(x: ๋ฌธ์ž์—ด | ์ˆซ์ž): ๋ฌธ์ž์—ด | ์ˆซ์ž { if (x ์œ ํ˜• === ์ˆซ์ž) { return x + 1 } else { return x + "!" } }

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€