TypeScript (3) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [ TS ] TypeScript 5.4 ์๋ก์ด ๊ธฐ๋ฅ ์์๋ณด๊ธฐ. 2024๋ 1์ 24์ผ ํ์ ์คํฌ๋ฆฝํธ 5.4 ๋ฒ ํ ๋ฒ์ ๋ฐํ๊ฐ ์์๋ค. ์ด ํฌ์คํ ์ ํด๋น ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๊ณ ์ ํํ๊ณ ์ ํจ๊ป ๋ฒ์ญํ๋ฉฐ ์ฎ๊ธด ๊ธ์ด๋ค. (โป์ค์ญ ์ฃผ์) ์ฐ์ TypeScript 5.4 beta ๋ฒ์ ์ ์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋ค์ด๋ฐ์ ์ ์๋ค๊ณ ํ๋ค. npm install -D typescript@beta TypeScript 5.4์ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ตํ๊ฒ ์๊ฐํ๋ฉด ์๋์ ๊ฐ๋ค. 1. Preserved Narrowing in Clousures Following Last Assignments ๋ง์ง๋ง ํ ๋น ํ ํด๋ก์ ธ์์ ๋ฒ์๊ฐ ์ข์์ง๋๋ก ํ์ ์ ์ ์ง(๋ณด์กด)ํ๋ค. 2. NoInfer Utility Type NoInfer ์ ํธ๋ฆฌํฐ ํ์ 3. Object.groupBy and Map.groupBy O.. [ TypeScript ] ํ์ ์ ์ํ interface ์ ํํธ ์ฃผ์ ๋ฌ๊ธฐ. ts๋ก ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐ ์ค์ interface์ ์ถ๊ฐ์ ์ธ ์ค๋ช ์ด ์์ผ๋ฉด ์ข๊ฒ ๋ค~! ๋ผ๋ ์๊ฐ์ด ๋ค์ด์ ํ์์๋ method๋ method parameter์ ๋ํ ์ค๋ช ์ ๋ฌ์์ค ๋ ์์ฃผ ์ฌ์ฉํ๋ JSDoc์ ์ด์ฉํ์ฌ interface ์ค๋ช ์ ์ถ๊ฐํด ๋ณด์๋ค. ๋จผ์ JSDoc์ ๋ํด ์ค๋ช ํ์๋ฉด, JSDoc์ ์๋ฐ์คํฌ๋ฆฝํธ์ฉ API ๋ฌธ์ ์์ฑ๊ธฐ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API๋ฅผ ๋ฌธ์ํํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ค. module, namespaces, classes, methods, method parameters ๋ฑ๊ณผ ๊ฐ์ ํญ๋ชฉ๋ค์ ๋ฌธ์ํํ ์ ์๋ค. JSDoc์ ์ฝ๋ ์์ฒด์ ํจ๊ป ์์ค์ฝ๋์ ์ง์ ๋ฌธ์ ์ฃผ์์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค. JSDoc ์ฃผ์์ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ํํ๋ ค๋ ์ฝ๋ ๋ฐ๋ก ์์ ์์น.. [TS] ํ๋ก์ ํธ์ tsconfig ์ค์ ํ๊ธฐ. ํ๋ก์ ํธ๋ฅผ ์ฒ์ ์ธํ ํ ๋, TypeScript ๋ก ํ์ ์ฒดํฌ๋ฅผ ์ด๋๊น์ง ํ์ฉํ ์ง, ์ด๋ค ์ค์ ์ผ๋ก ์ฐ๋ฆฌ์ ํ๋ก์ ํธ๋ฅผ ์ธ์ง ๊ณ ๋ฏผํ๋ ์ค ํ์๋ค(+๋)์ ํ์ ์คํฌ๋ฆฝํธ ๋ฅ์๋๊ฐ ๊ทธ๋ฆฌ ๋์ง ์๋ค๋ ๊ฒ์ ์๊ฒ๋์ด ๊ธฐ๋ณธ ํ์ ์คํฌ๋ฆฝํธ ์ธํ ์ ํ๋ฉฐ ์ฐ๋ ๊ธ. tsconfig.json ์ค์ fucntion add(a,b){ return a+b; } add(10, null); // noImplicitAny ์ค์ ์ด ๊บผ์ ธ์๋ค๋ฉด ์์ ์ฝ๋๋ ํ์ ์ฒด์ปค๋ฅผ ํต๊ณผํ๊ณ , // noImplicitAny ์ค์ ์ด ์ผ์ ธ์๋ค๋ฉด ์ค๋ฅ๊ฐ ๋๋ค. **์์ ์์์ ๊ฒฝ์ฐ, ํ์ ์คํฌ๋ฆฝํธ์ ์ค์ ์ ๋ฐ๋ผ ๋์ผ ์ฝ๋๋ผ๋ ํ์ ์ฒด์ปค์ ํต๊ณผ ๊ฐ๋ฅ์ฌ๋ถ๊ฐ ๋ฌ๋ผ์ง๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ ์ค์ ์ด 100๊ฐ ๊ฐ๊น์ด ๋๊ธฐ๋๋ฌธ์, ์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ์ด๋ค ํ์ ์คํฌ๋ฆฝํธ ์ค์ ์ ์ฌ์ฉํ๋์ง.. ์ด์ 1 ๋ค์