ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ

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๊ฐ€ ๋œ๋‹ค. ํƒ€์ž…์„ ์ œ๋Œ€๋กœ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ณ„์†ํ•ด์„œ ๊ฒฝ๊ณ ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๊ธฐ์— ํƒ€์ž…์ง€์ •์„ ์ž˜ ..
๊น€ํƒœ์ง„
'ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก