Microsoft, Igalia ๋ฐ Bloomberg๋ TypeScript ์ธ์ด์์ ์ฌ์ฉ๋๋ ๊ตฌ๋ฌธ๊ณผ ์ ์ฌํ ๋ช ์์ ์ ํ ์ ์๋ฅผ ์ํด JavaScript ์ฌ์์ ๊ตฌ๋ฌธ์ ํฌํจ์ํค๋ ๋ฐ ์์ฅ์ฐ์ต๋๋ค. ํ์ฌ ECMAScript ํ์ค์ ํฌํจํ๊ธฐ ์ํด ์ ์๋ ํ๋กํ ํ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋น ๋ ผ์(0๋จ๊ณ)๋ฅผ ์ํด ์ ์ถ๋์์ต๋๋ค. 39์์ ์ด๋ฆฌ๋ TCXNUMX ์์ํ์ ๋ค์ ํ์์์๋ ECMA์ ์ ๋ฌธ๊ฐ ์ปค๋ฎค๋ํฐ๊ฐ ์ฐธ์ฌํ์ฌ ์ ์์ ๋ํ ์ฒซ ๋ฒ์งธ ๊ณ ๋ ค ๋จ๊ณ๋ก ๋์ด๊ฐ ๊ณํ์ ๋๋ค.
์ ํ ์ ๋ณด๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ๋ฉด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ค ๋ง์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ณ , ์ถ๊ฐ ์ต์ ํ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋๋ฒ๊น ์ ๋จ์ํํ๊ณ , ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ฝ์ ์ ์๊ณ ์ XNUMX์ ๊ฐ๋ฐ์์ ์์ ๋ฐ ์ง์์ด ๋ ์ฌ์์ง๋๋ค. ์ ํ ์ง์์ ์ ํ์ ๊ธฐ๋ฅ์ผ๋ก ๊ตฌํ๋๋๋ก ์ ์๋์์ต๋๋ค. ์ ํ ๊ฒ์ฌ๋ฅผ ์ง์ํ์ง ์๋ JavaScript ์์ง ๋ฐ ๋ฐํ์์ ์ ํ ์ ๋ณด๊ฐ ํฌํจ๋ ์ฃผ์์ ๋ฌด์ํ๊ณ ์ด์ ๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ํ ๊ฒ์ฌ ๋๊ตฌ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ชป๋ ์ ํ ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ์ค๋ฅ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
๋ํ ์ฃผ์ ํ์์ผ๋ก ์ง์ ๋ JSDoc ์ฃผ์์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ์ ํ ์ ๋ณด์ ๋ฌ๋ฆฌ ๋ณ์ ์ ์ ๊ตฌ์ฑ์์ ์ง์ ์ ํ์ ์ง์ ํ์ํ๋ฉด ์ฝ๋๊ฐ ๋์ฑ ์๊ฐ์ ์ด๊ณ ์ดํดํ๊ธฐ ์ฝ๊ณ ํธ์งํ๊ธฐ ์ฌ์์ง๋๋ค. ์๋ฅผ ๋ค์ด TypeScript๋ฅผ ์ง์ํ๋ IDE๋ ์ถ๊ฐ ๋ณํ ์์ด ์ ๋ ฅ๋ JavaScript ์ฝ๋์ ์ค๋ฅ๋ฅผ ์ฆ์ ๊ฐ์กฐ ํ์ํ ์ ์์ต๋๋ค. ๋ํ ๋ด์ฅ๋ ์ ํ ์ง์์ ํตํด ํ ์ธ์ด์์ ๋ค๋ฅธ ์ธ์ด๋ก ๋ณํํ์ง ์๊ณ ๋ TypeScript ๋ฐ Flow์ ๊ฐ์ ์ ํ์ด ์ง์ ๋ 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