์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์๊ณ ๋ฆฌ์ฆ
- wil
- ํ์ค
- ๋ถํธ์บ ํ
- Firebase
- ์๋ฐ์คํฌ๋ฆฝํธ
- type
- ๋ฆฌ์กํธ
- ์ฝ๋ฉ
- trainning
- ํ์
- JS
- NEXT
- native
- ๋ณ์
- K-Digital
- Redux
- ํ๋ก ํธ์๋
- react
- ๋ด์ผ๋ฐฐ์
- rn
- ๊ฐ๋ฐ์
- ๋ด์ผ๋ฐฐ์์บ ํ
- JavaScript
- API
- PROJECT
- ํ๋ก์ ํธ
- ์จ๋ผ์ธ
- ํจ์
- ์๋ฌ
- Today
- Total
Frontend ๊ฐ๋ฐ์ - hyo.loui
Project: Develife - โจTypescript ๋ฆฌํํ ๋ง ๊ณผ์ ๋ณธ๋ฌธ
๐ฏ๋ชฉ์ :
ํ์ ์คํฌ๋ฆฝํธ ๋ฆฌํํ ๋ง ๊ณผ์ ์ ๋ฆฌ
๐คข ํธ๋ฌ๋ธ ์ํ :
- Comment ํ์ overlap ์๋ฌ
1. typescript ํ๊ฒฝ ์ธํ
Develife ํ๋ก์ ํธ๋ ๋ฆฌ์กํธ๋ก ๋ค ์์ฑ๋์ด ๋ฐฐํฌ๊น์ง
๋ง์น ์ํ์๋ค.
์ฒ์ ์งํ ํด์ผํ๋ ์์ ์
typescript์ ํจํค์ง๋ฅผ ์ค์นํด์ผ ํ๋ค
npm install typescript @types/node @types/react @types/react-dom @types/jest
dependenci์ ์ค์น๊ฐ ์๋ฃ ๋ ํ,
tsc --init
๋ช ๋ น์ด๋ก tsconfig.json ํ์ผ์ด ์์ฑ๋์๋์ง ํ์ธํ ํ,
jsx๋ฅผ ์ธ์ ๋ชปํ๋ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด
์ฃผ์์ฒ๋ฆฌ ๋์ด์๋ 16๋ฒ์งธ ๋ผ์ธ์
์ฃผ์์ ํด์ ํ๋ฉฐ, "JSX": "preserve", >> "JSX": "react" ๋ก ๋ฐ๊พผ๋ค
๋ง์ง๋ง์ผ๋ก
Root๋ฅผ ์ค์ ํ๋ฉด ์ด๊ธฐ ๋ฆฌํํ ๋ง ํ๊ฒฝ ์ธํ ์ ๋์ด ๋๋ค
ํญ์ HTML์ div element๊ฐ ๋ค์ด์จ๋ค๊ณ ๋ช ์ํ๋ ๊ตฌ๋ฌธ์ด๋ค.
2. ๋ฐ์ดํฐ ๊ตฌ์กฐ
์๋ฒ ์คํ ์ดํธ์ ๊ตฌ์กฐ๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํด์
์กฐ์์ด ์์ฑํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ค.
์์ง ํ์ ์คํฌ๋ฆฝํธ์ ๋ํ ํผ๋๋ฐฑ์ด๋ ์๋ จ๋๊ฐ ๋ถ์กฑํด ์ด๊ฒ ๋ง๋๊ฑด๊ฐ(?)
ํ๋ ๋ถ๋ถ์ด ๋ง๋ค.
์ ๋ด์ฉ์ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ๊ฐ ๋ง๊ณ ,
์ด์ฐจํผ ๋ค๋ฅธ ์ปดํฌ๋ํธ์์๋ import ํด์ผ ํ๋ฏ๋ก,
index.data.ts๋ผ๋ ํ์ผ์ ์ 3๊ฐ์ interface๋ฅผ ๋ถ๋ฆฌํด ์ฃผ์๋ค.
3. ์ ํ๋ธ ์ฝํ ํธ (ํ ์์์ ์ธ๋ค์ผ) ์ปดํฌ๋ํธ
์ฒ์ ๋ฆฌ์กํธ์์ typescript๋ก ์์ ํ ๋ ๋นํฉ์ค๋ฌ์ ๋
props type๊ณผ event type์ด ์์๋ค
props type์ ์์ฒ๋ผ ๋ฏธ๋ฆฌ ์ง์ ํ ๋ฐ์ดํฐ ํ์ ์ค item์ ๋ง๋ `ํ๋์ ๊ฐ์ฒด ๋ฐ์ดํฐ`๋ฅผ
์ํฌํธํด์ ์ฐ๊ฒฐํ๊ณ , ํจ์๋ return ๊ฐ์ด ์์ผ๋ฏ๋ก void type์ ์ง์ ํด์ฃผ์๋ค.
4. ๊ฐ ์ปดํฌ๋ํธ์์ ๋ฐ์์จ props type
์ปดํฌ๋ํธ ๊ตฌ์กฐ๋
- YoutubeBoard
- Training
- Programing
- ItItem
์ผ๋ก ๋๋์ด ์ง๋๋ฐ ๋๋๋ ๊ธฐ์ค์ category ๋ผ๋ state์์
์ปดํฌ๋ํธ์ ์ผ์นํ๋ string์ด๋ผ๋ฉด ํด๋น ์ปดํฌ๋ํธ๋ฅผ return ํ๋ ๋ฐฉ์์ด๋ค
๊ทธ๋์ ๊ฐ ์ปดํฌ๋ํธ๊ฐ ๋ฐ๊ณ ์๋ props ๋ด์ฉ์
~PlayList๋ฅผ ์ ์ธํ ๋๋จธ์ง๋ ๋ชจ๋ ์ผ์นํ๋ค
+ ์ค๋ฅ ํด๊ฒฐ :
before - ํด๊ฒฐ ์
๋ถ๋ช Comment๋ผ๋ ํ์ ์ ๋ง๋ค์๋๋ฐ
์ธ์์ด ์๋์๋ค..
์ ์๋ ๊น typescript์ ์์ฒญ๋ ๊ฟํ์
- ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋ณธ๋ค
- Ctrl + ๋ง์ฐ์ค ํด๋ฆญ
์ผ๋ก ์ด๋ค ๋ด์ฉ์ ์ฐธ์กฐํ๊ณ ์๋์ง ์ดํด๋ด์ผ ํ๋ค
๊ทธ๋ ๊ฒ ์ฐพ์๋ธ ๊ฒฐ๋ก ์,
์ด๋ฏธ ํ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ด๋ถ์ ์ผ๋ก ๋ง๋ค์ด๋์ declare๋ฅผ ์ฐธ์กฐํ๊ณ ์์๋ค!!...
๊ทธ๋์ interface ์ด๋ฆ์ ๋ฐ๊ฟ์ฃผ๊ณ ,
์ฐ๊ฒฐ๋ ์ปดํฌ๋ํธ์ import ๊ตฌ๋ฌธ๋ ๋ค์ ํ์ธํ๋ค
after - ํด๊ฒฐ ํ
+ ํด๊ฒฐ :
typescript ๊ธฐ์กด์ ์๋ declare ์ด๋ฆ๊ณผ ๊ฒน์น๋ ๋ฌธ์ ๋ก,
์์ฑํ interface๊ฐ ์ ๋๋ก ์ธ์๋์ง ์๋ ๋ฌธ์
๋ค๋ฅธ interface ์ด๋ฆ์ ๋ฃ์ด์ฃผ๋ฉฐ ๊ฐ๋จํ ํด๊ฒฐ
์ต์ข ์ ๋ฆฌ
- js >> ts ๋ฆฌํํ ๋ง ์ typescript์ ํจํค์ง ์ค์น, tsc --init
- root ์ as HTMLDivElement ๊ตฌ๋ฌธ ์ถ๊ฐ
- tsconfig.json ํ์ผ 16๋ฒ์งธ์ค ์ฃผ์ ํด์ ํ "JSX": "preserve", >> "JSX": "react"
- ํจ์์ return ๊ฐ์ด ์๋๊ฒฝ์ฐ void type์ ์ง์ , prameter์๋ type ์ง์ ex) function(pram: type) {...}
- import ๊ฐ ๋ง์ interface ๊ฒฝ์ฐ ๋ฐ๋ก ํ์ผ ๋ถ๋ฆฌ!
- typescript์ ์ฐธ์กฐ๊ฐ์ด ์ด๋ค ๊ฒ์ธ์ง ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋ณด๊ฑฐ๋, Ctrl + ํด๋ฆญํด๋ณด์
'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Project: ๐ฉcodefoliol - ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ (0) | 2023.02.07 |
---|---|
Project: ๐ฉcodefoliol S.A (์ต์ข ํ๋ก์ ํธ) (0) | 2023.02.06 |
Project: Develife - โจPR(pull request) ์ฌ์ฉ๋ฒ(git hub) (0) | 2023.01.27 |
Project: Develife - main ๊ตฌ์ฑ๊ณผ React-Query ์ ์ฉ (0) | 2023.01.26 |
Project : MZ Language (MZL) - KPT ํ๊ณ (0) | 2023.01.13 |