Type Challenges ์์์ด๋ฒ์ ์คํ๋ฆฐํธ์์ ์๋ก ๋ฐฐ์ ๋ฐ์ ๋ฉํ ๋์ ์ถ์ฒ์ ๋ฐ์ ์์ํ๊ฒ ๋์๋ค. ๋ฌธ์ ์ฒซ ๋ฌธ์ ๋ utility type์ธ Pick์ ๊ตฌํํ๋ ๋ฌธ์ ์ด๋ค. ๋์ด๋๋ easy ํ์ด๊ณผ์ type MyPick = {[key in K]:T[K]} ์ต๋ํ ๋ค๋ฅธ ์ธํฐ๋ท ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํ์ง ์์๋ค. ์ฐจ๊ทผ์ฐจ๊ทผ ์๊ฐํ๋ฉฐ ํ์๋ค. ๋ฐ์ ๊ฒ์์ ์๋ฌ๊ฐ ๋ด๋ค. 1๋ถ ๋์ ๊ณ ๋ฏผํ๋ค๊ฐ ๋ด๊ฐ ์ค์๋ฅผ ํ๋จ ๊ฑธ ๊นจ๋ฌ์๋ค. type MyPick = {[key in K]:T[key]} T[K] ๋ฅผ T[key]๋ก ๋ฐ๊ฟจ๋ค. ์๋ฌ๋ ๋ค ์ฌ๋ผ์ก์ง๋ง ์ด๊ฒ ์ ๋ต์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค? ๋ฐ๋ก ์ด์๋ฅผ ๋จ๊ธฐ๋ ค๊ณ ํ์ง๋ง ๋น์ทํ ๋ต์์ด ์์ ๊ฒฝ์ฐ thumb up๋ง ๋จ๊ฒจ๋ฌ๋ผ๊ณ ํด์ ์ผ๋จ ์ ๋ต๋ค์ ์ดํด๋ณด๊ธฐ๋ก ํ๋ค. ์ ๋ต๋ค ์ดํด๋ณด๊ธฐ ์ ๋ต๋ค์ ..
ํ์
์คํฌ๋ฆฝํธ๋ก ์ฝ๋ฉ์ ํ๋ค๋ณด๋ฉด ์ฌ์ฌ์น ์๊ฒ ๋ณผ ์ ์๋ ๊ฒฝ๊ณ ๊ฐ [error] Property does not exist on type 'something' ์ด๋ค. ์ด๋ค ๋ธ๋ก๊ทธ ๊ธ์์ ์ด๋ฅผ ๊ทธ์ any๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐํ๋๋ฐ ์ด๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ๋ค. ์๋ ์ด๊ธฐ ๋ ๋๋ง ์์ ๋ด ๊ฐ์ธํ๋ก์ ํธ์ธ leafylog์ heatmap ๋ถ๋ถ์ ์คํฌ๋กค์ ํ๋จ๊ณ ์ ํ๊ธฐ ์ํ์ฌ ๋ฃ์ ์ฝ๋์ด๋ค. ํ์
์คํฌ๋ฆฝํธ์์๋ ์์๊ฐ์ด ์ถ๊ฐํ์์ ๋ ์๋ํฐ์ ๊ฒฝ๊ณ ๊ฐ ๋ฌ๋ค. Propery does not exist on type never์ด๋ค. never๋ ์๋ฌด๊ฒ๋ ์ง์ ํด์ฃผ์ง ์์์ ๋๋ฅผ ์๋ฏธํ๋ค. ๋ณธ ์๋ฌ์ ํด๊ฒฐ์ฝ๋์ธ๋ฐ ๋ฅผ ์ฐ์ง ์๋๋ค๋ฉด never๊ฐ ๋๋ค. ํ์
์ ์ ๋๋ก ์ง์ ํด์ฃผ์ง ์๋๋ค๋ฉด ๊ณ์ํด์ ๊ฒฝ๊ณ ๊ฐ ๋์ฌ ๊ฒ์ด๊ธฐ์ ํ์
์ง์ ์ ์ ..