TypeScript (2) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ TypeScript ์ Redux ๋ฅผ ์ด์ฉํ์ฌ Todo-List ๋ง๋ค๊ธฐ (Feat. typesafe-actions) TypeScript์ ๊ธฐ์ด๋ฅผ ์์๋ณด์๊ณ Redux์ ์ฌ์ฉ๋ฒ๋ ์์์ผ๋ TypeScript์ Redux๋ฅผ ์ฌ์ฉํ์ฌ Todo-List๋ฅผ ๋ง๋ค์ด๋ณด์ ์ด ๊ฒ์๊ธ์์๋ TypeScriptํ๊ฒฝ์์ Redux๋ฅผ ๋์ฑ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด typesafe-actions ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค Redux์์๋ redux-actions๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ง๋ง TypeScript ํ๊ฒฝ์์๋ ์ฌ์ฉํ๊ธฐ ์ข์ง ์๋ค ํ๋ก์ ํธ ๊ตฌ์กฐ ์ด ํ๋ก์ ํธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ถ๋ถ Container ์ปดํฌ๋ํธ์ ํ๋ฉด์ ํํํ๋ ๋ถ๋ถ Presentational ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ฐ๋ฐํ์๋ค. ์๋๋ฅผ ํตํด ์ดํด๋ณด์ components ํด๋์๋ Presentational ์ปดํฌ๋ํธ๋ค์ด , containers ํด๋์๋ container ์ปดํฌ๋ํธ, ๊ทธ๋ฆฌ๊ณ .. ํ์ ์คํฌ๋ฆฝํธ ์์ํ๊ธฐ ๋ฆฌ๋์ค๋ฅผ ๋ฐฐ์ฐ๊ณ ๋์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์ฐ๋ คํ๋ค ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๊ณ ๋๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋๋ฌด๋๋ฌด ๋ถํธํ๋ค๊ณ ํ๋๋ฐ ํ๋ฒ ์ฒดํํด๋ณด์ ..! โ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์จ์ผํ๋ ์ด์ ์๋ฌ์ ์ฌ์ ๋ฐฉ์ง๊ฐ ๊ฐ๋ฅํ๋ค ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ฉด ๋ง์ ์ค์๋ฅผ ์ค์ผ ์ ์๋ค function sum(a: number, b: number) { return a + b; } ์์ ๊ฐ์ด ํ์ ์คํฌ๋ฆฝํธ๋ก sum์ด๋ผ๋ ํจ์๋ฅผ ๋ง๋ค๊ณ sum(10, 20); // 30 sum('10', '20'); // error ์ ์ฝ๋์ฒ๋ผ ํจ์๋ฅผ ํธ์ถํ์ ๋, ์ฒซ๋ฒ์งธ ํธ์ถ์ ํธ์ถ ์ธ์๋ก number๊ฐ ๋ค์ด๊ฐ์ ๋ ์ซ์๋ฅผ ํฉํ ๊ฐ์ ๋ฆฌํด๋ฐ์ง๋ง ๋๋ฒ์งธ ํธ์ถ์ string ํ์ ์ด ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋๊ฒ ๋๋ค ์ด๋ฐ์๋ ์ด์ํ ์คํ๋ฅผ ๋ธ ๊ฒฝ์ฐ, ๋ค๋ฅธ ํ์ ๋ผ๋ฆฌ.. ์ด์ 1 ๋ค์