[TypeScript] ๋ฆฌ์•กํŠธ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ
728x90

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

 

 

 

์ดํ›„ ์›ํ•˜๋Š” ๋Œ€๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค! ๐Ÿ™Œ

728x90