๐คํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์จ์ผํ ๊น?(โ๏ธ์๋ฐ์คํฌ๋ฆฝํธ์ ํ๊ณ๊ณผ ํ์ ์คํฌ๋ฆฝํธ์ ํน์ง(์๋ฐ์คํฌ๋ฆฝํธ๋ node.js ๋ฑ์ฅ์ผ๋ก ๋ชจ๋ ๊ณณ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋์๋ค.๋ง์ ๋๊ธฐ์ ๋ค ๋๊ท๋ชจ ํ๋ก์ ํธ ๋ฑ์ ์ฌ์ฉ๋์๋ค.ํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋๋ฌด ์ ์ฐํ๊ณ , ๋ฒ๊ทธ ๋ฐ์๋ฅ ์ด ๋์ ์ธ์ด์ด๋ค.โก๏ธ๊ทธ๋์
๐กํ๋ฐฉ์ typescript ์ปดํ์ผํ๊ธฐ
ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ ์ต์ ์ค์ ํ๊ธฐ ์ปดํ์ผ๋ฌ ์ต์ ์ด๋? ํ๋ก์ ํธ์ ๋ฐ๋ผ ์ต์ ์ ์ค์ ํด์ ์ฌ์ฉํ๋ค. ์ปดํ์ผ๋ฌ ์ต์ ํ์ผ ์์ฑ ๐๏ธtsconfig.json: ์ปดํ์ผ๋ฌ ์ต์ ์ ์ค์ ํ ์ ์๋ ํ์ผ ์์ฑ 100๊ฐํ์ผ ์ปดํ์ผํ๋ ๋ฐฉ๋ฒ(include) "src" ์์์๋
[TS] ๊ธฐ๋ณธํ์ ๐งโ๐ซ ๊ธฐ๋ณธ ํ์ ๋ค์๋ํด์ ์ดํด๋ณด์! ์์ํ์ ํ์ ์ฃผ์ number ![](https://velog.velcdn.com/images/j
๋ง์ฐ์ค ์ปค์ ์ฌ๋ฆฌ๊ธฐ๊ธธ์ด์ ํ์ ์ด ๊ณ ์ ๋ ๋ฐฐ์ด๐จ์๋ฌ๊ทธ๋ฅ ๋ฐฐ์ด์(์ปดํ์ผ)๋ฐฐ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฌ์์ด ์ฌ์ฉ๊ฐ๋ฅ. ๊ทธ๋์ ์ฃผ์ํด์ ์ฌ์ฉํด์ผํจ๊ฐ์ ์๋ชป ๋ฃ์ง ์๋๋ก ๋ฐฉ์ง ๊ฐ๋ฅ
์ ๋ก๋์ค..object๋ก ํ์ ์ ์ฃผ๋ฉด ์ฝ๋์์ user.id๋ก ๋ถ๋ฌ์ค๋ฉด ์ค๋ฅ ๋ฐ์๊ฐ์ฒด๊ฐ ๋ญ์ง ์์๊ฐ ์์ด์ ์ค๋ฅ๊ฐ ๋๋๊ฒ.๊ฐ์ฒด๊ธดํ๋ฐ ๊ทธ ์ด์์ ๋ชจ๋ฆjava : ์ด๋ฆ ๊ธฐ์ค ์์คํ = ๋ช ๋ชฉ์ ํ์ ์์คํ ํ์ ์ด๋ฆ ๋ค์ ?๋ง ๋ถ์ด๋ฉด๋๋ค.
ํ์ ๋ณ์นญ๊ณผ ์ธ๋ฑ์ค ์๊ทธ๋์ฒ
Enum
๋ชจ๋ ํ์ ์ ๊ฐ์ ํ ๋น ๋ฐ์ ์ ์๋ค.์๋ฐ์คํฌ๋ฆฝํธ์ฒ๋ผ ๋ชจ๋ ํ์ ์ ํ์ฉํ๋ค.any: ๋ณ์์ ํ ๋น ๊ฐ์ผunknown: ๋ณ์์ ํ ๋น ๋ถ๊ฐ๋ฅ๐ค ๋ณ์์ ์ ์ฅํ ๊ฐ์ ํ์ ์ด ํ์คํ์ง ์์ ๋์๋ any ํ์ ๋ณด๋ค ์กฐ๊ธ๋ ์์ ํ Unknown ํ์ ์ ํ์ฉ๐๋ฐํ์ ์๋ฌ๋ฅผ ๋ง์ด ์ผ์ผ
์๋ฌด๊ฒ๋ ์์์ ์๋ฏธํ๋ ํ์ .undefined๋ ๋ด์ ์ ์๋ค.์ค๋ฅ ํด๊ฒฐํ๋ ค๋ฉด undefined๋ฅผ ๋ฐํํ๊ฒ ๋ง๋ค์ด์ผํ๋ค.์ง์ง null์ return์ ์ ์ด์ค์ผํ๋ค(๊ท์ฐฎ)์กด์ฌํ์ง ์๋ ๋ถ๊ฐ๋ฅํ ํ์ .(๋ชจ์)๊ฐ์ ๋ชป ๋ฐํํ๋๊ฑฐ๋ ์ ๋ฐํํ๋๊ฑด ๋ค๋ฆ๊ฐ ๋ฐํ์ด ์ ๋ ๋ถ๊ฐ๋ฅํจ
๋์ผํ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ํฌํจํ๋ ์งํฉ
ํ๋กํผํฐ ๊ธฐ์ค์ผ๋ก ๊ตฌ์กฐ์ ํ์ ์์คํ ์ ๋ฐ๋ฅธ๋ค.์ถ๊ฐ ํ๋กํผํฐ๊ฐ ์๋ ์กฐ๊ฑด์ด ์ ์ ํ์ ์ด ์ํผํ์ ์ด๋ค.
\-> ์ฌ๋ฌ๊ฐ์ ํ์ ์ ํฉ์ฑํด์ ์๋กญ๊ฒ ๋ง๋ค์ด๋ธ ํ์ \-> ํฉ์งํฉ ํ์ ๊ณผ ๊ต์งํฉ ํ์ ์ด ์กด์ฌํฉ๋๋ค.โฌ๏ธโ ๏ธ์๋ฌ๋ฐ์ - ๊ณตํต์ผ๋ก ๋ค์ด๊ฐ name๋ง ์ฐ๋ฉด ์๋ฌunion4 ํ์ ์ ์๋ฌด ์งํฉ์๋ ํฌํจ๋์ง ์๋๋ค.&๋ํ์ ์ ๊ต์งํฉ์ ๋ชจ๋ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.ํ๋๋ผ๋ ๋นผ๋จน์ผ๋ฉด
์ถ๋ก ํ ์ ๋ณด๊ฐ ์์ผ๋ฉด ์ถ๋ก ํจ.์๋ฌด๊ฐ๋ ๋ด๊ธฐ์ง ์์ ๋ณ์(anyํ์ ) 1\. ์๋ฌต์ ์ธ any ํ์ - ํ์ ์ด ๊ณ์ ์งํํ๋ค. 2\. ๋ค๋ฅธ ํ์ ์ ๋ด์๋ ์๊ด์์. ์งํํจ โ ๏ธ ์ถ๋ก ํ๊ฒ ๋๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ๋ฐ๊ฟ ์๋ ์๊ณ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ์ถ๋ก ํด์ผํ๋ค.์ฐ์ง ์๊ธฐ!!l
ํ์ ์ ์ค์ ๋ก ๋ฐ๊พธ๋๊ฒ ์๋๋ผ ์ปดํ์ผ๋ฌ์ ์ ์ ๋์ ๊ฐ๋ฆฌ๊ฒํ๋.๋จ์ธ์ ์ํํ ๋ฌธ๋ฒ์ด๋ค.๋ณ์๋ฅผ ์ ์ธํด์ฃผ๊ณ ํ์ ์ ๋ง๋ค์ด์ ๋ณ์์ Person ํ์ ์ ์ฃผ๋ฉด ์๋ฌ๊ฐ ๋๋ค.person ๋ณ์์ Personํ์ ์ ํด๋นํ๋ ๊ฐ์ด ์์ด์.๊ทธ๋ผ.. ์ด๋ ๊ฒ ๋ฃ์ด์ค๋ ์๋ฌ๊ฐ ๋๋ค.๊ทธ๋ผ ๋ค์
์กฐ๊ฑด๋ฌธ ๋ค์ ์ด์ฉํด ๋์ ํ์ ์์ ์ข์ ํ์ ์ผ๋กํ์ ์ ์ํฉ์ ๋ฐ๋ผ ์ขํ๋ ๋ฐฉ๋ฒ์ ์ด์ผ๊ธฐ์ข์ ํ์ ์์ ๋ณด์ฅํ ์ ์์๋ ํ์ ์คํฌ๋ฆฝํธ๋ ์ข์ ํ์ ์ผ๋ก ์ถ๋ก ๋งค๊ฐ๋ณ์์ ์ฌ๋ฌ๊ฐ์ง ํ์ ์ ๊ฐ๋ค์ด ๋ค์ด์ฌ ์ ์๊ณ , ํ์ ์ ๋ฐ๋ผ์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋์์ ์ํค๋ ๊ธฐ๋ฅ์ ์์ฃผ ๋ง๋ค๊ธฐ ๋๋ฌธ์
๐จ(์ง๊ด์ ์ด์ง ์๋ค.)์ด ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ฌ๋์ด๋ณด๋ฉด ์ด๋๊ฐ admin, member, guest์ธ์ง ์ ์ ์๋ค.๐โโ๏ธ tag ํ๋กํผํฐ๋ฅผ ๋ง๋ค๊ณ , switch๋ฌธ์ผ๋ก ๋ณ๊ฒฝ=> ํจ์ฌ ์ง๊ด์ tag ์ถ๊ฐ ์ tag๋ฅผ ์ถ๊ฐ ํ \- ๊ต์งํฉ์ด ์์ \- ๋ฆฌํฐ๋ด ํ์ ์ ๋ฑ
์๋ฌ ๋ฐ์
ํน์ ํจ์ ํ์ ์ ๋ค๋ฅธ ํจ์ ํ์ ์ผ๋ก ์ทจ๊ธํด๋ ๊ด์ฐฎ์ ๊ฐ๋ฅผ ํ๋จ1\. ๋ฐํ๊ฐ์ ํ์ ์ด ํธํ๋๋๊ฐ2\. ๋งค๊ฐ๋ณ์์ ํ์ ์ด ํธํ๋๋๊ฐ๊ธฐ์ค1/ ๋ฐํ๊ฐ์ด ํธํ๋๋๊ฐ?number์ number ๋ฆฌํฐ๋ด๋ก ํธํ ๋ถ๊ฐ๋ฅ๋ค์ด์บ์คํ ์ด ๋๋ฉด ์๋จ.์ ์ผ์คํ ์ ๊ฐ๋ฅ
ํ๋์ ํจ์๋ฅผ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ ํ์ ์ ๋ฐ๋ผ ์ฌ๋ฌ๊ฐ์ง ๋ฒ์ ์ผ๋ก ๋ง๋๋ ๋ฌธ๋ฒ\-> ํ๋์ ํจ์ func\-> ๋ชจ๋ ๋งค๊ฐ๋ณ์์ ํ์ number๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋ ๋ถ์ํ๋๋ฐ ์ ์ฉํฉ์ ์ธ์์ด ์์ด ํจ์๋ง ๋ง๋ค๋ฉด ์ค๋ฒ๋ก๋ ์๊ทธ๋์ฒํจ์๋ฅผ ์ค๋ฒ๋ก๋ ํ๊ธฐ์ํด์ ๊ฐ๊ฐ ๋งค๊ฐ๋ณ์ ๋ณ๋ก ๋ค๋ฅธ