Today, What I learned?
ํ์ ์คํฌ๋ฆฝํธ๋ก ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๊ธ๋ก ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค.
ํ๋ก์ ํธ ์์ฑ
CRA๋ฅผ ํตํด ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค.
npx create-react-app ํ๋ก์ ํธ๋ช
--template typescript
์ด ๋ --template
์ ๊ผญ ๋ฃ์ด์ฃผ์ด์ผ ์ฒ์๋ถํฐ ํ์
์คํฌ๋ฆฝํธ๋ก ํ์ผ๋ค์ด ์คํ๋๋ค.
--template
์์ด typescript
๋ง ๋ฃ์ ๊ฒฝ์ฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ก CRA๊ฐ ๋์ด์ ๋ค์ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ผ ํ ์ ์๋ค.
์ ์์ ์ผ๋ก ๋ช
๋ น์ด๊ฐ ์คํ๋์๋ค๋ฉด ์ด๋ ๊ฒ ts, tsx๋ก ํ์ผ๋ค์ด ๋ง๋ค์ด์ ธ ์๊ณ , tsconfig.json
๊น์ง ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋์ด ์์ ๊ฒ์ด๋ค.
react-app-env.d.ts ?
์ผ๋ฐ์ ์ธ ๋ฆฌ์กํธ ํ๋ก์ ํธ์์๋ ๋ณด์ง ๋ชปํ๋ ์ด ํ์ผ์ ๋ฌด์์ผ๊น? ํ๊ณ ์ข ์ฐพ์๋ณด๋ ์ ์ญ์ผ๋ก ์ฌ์ฉํ ํ์
์ ์ ์ธํ ์ ์๋ ํ์ผ์ด๋ผ๊ณ ํ๋ค.
์ด ํ์ผ์ ์ปดํ์ผ ์ดํ๋ก js๋ก ๋ณํ๋์ง ์๊ธฐ ๋๋ฌธ์ ํ์ผ ๋ด์์ const
๋ let
ํค์๋๋ก ์ ์ธํ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์๋์ ๊ฐ์ด ์ด๋ฏธ์ง ๋ฆฌ์์ค ๊ด๋ จ ํ์ฅ์๋ ์คํ์ผ ๊ด๋ จ ํ์ฅ์๋ค์ ๋ํ ํ์ ์ ์ ์ธํ์ฌ ์ฌ์ฉํ๋ ๋ฏ ํ๋ค.
declare function sum(x: number, y: number): number;
declare module '*.jpeg' {
const src: string;
export default src;
}
declare module '*.png' {
const src: string;
export default src;
}
declare module '*.module.sass' {
const classes: { readonly [key: string]: string };
export default classes;
}
ํ๋ก์ ํธ ํ์ผ ์ ๋ฆฌ ํ ํจํค์ง ์ค์นํ๊ธฐ
ํ๋ก์ ํธ์ ๋ฐ๋ผ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํด์ฃผ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ tsconfig.json
ํ์ผ์ ํ์ํ ์ค์ ์ ์ถ๊ฐํด์ค๋ค.
๋ฆฌ๋์ค ํดํท์ ์ฌ์ฉํ๋ค๋ฉด ์๋์ ๊ฐ์ ๊ฒ๋ค์ ์ค์นํด์ฃผ๋ฉด ๋๊ฒ ๋ค.
npm install react-redux @reduxjs/toolkit
styled-components
ํจํค์ง ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ณ๋์ ํ์
์ ์ ํจํค์ง ์ถ๊ฐ ์ค์น๊ฐ ํ์ํ๋ค.
npm install --save styled-components
npm i --save-dev @types/styled-components
์ดํ ์ํ๋ ๋๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด ๋๋ค! ๐
Comment