typeScript

ํšŒ์‚ฌ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋˜ bottom-sheet๊ฐ€ ์žˆ์–ด ์ด๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ๋„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค! ๋˜ํ•œ npm์— ์˜ฌ๋ ค ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์†Œ์Šค ๋ฆฌ๋ทฐ, ๋ฒ„๊ทธ ๋“ฑ์„ ๊ณต์œ ๋ฐ›๊ณ  ์‹ถ์€ ๋งˆ์Œ๋„ ์žˆ์—ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉด ํ•ด์„œ ์˜์–ด๋กœ ๋ฌธ์„œํ™”ํ•ด ๋‘์—ˆ๋‹ค..! + ๋ฌธ์ œ์ ์ด๋‚˜ ๊ฐœ์„  ์‚ฌํ•ญ์€ issue๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ์ˆ˜์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ’ช bottom-sheet ๊ด€๋ จ ์†Œ์Šค๋Š” ๊ธฐ์กด ํฌ์ŠคํŒ…์—์„œ ์ˆ˜์ •๊ณผ ํ•จ๊ป˜ typescript๋ฅผ ์ ์šฉ์‹œ์ผฐ๋‹ค! @solb/bottom-sheet ์ˆœ์ˆ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋งŒ๋“  bottom-sheet๋กœ, ๋ชจ๋ฐ”์ผ ์›น์ด๋‚˜ ์•ฑ์—์„œ๋Š” bottom-sheet ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚˜๊ณ  ์›น์—์„œ๋Š” ๋ชจ๋‹ฌ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. ์ž์„ธํ•œ Demo๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค (๐Ÿ‘‰ Demo) ์ด ์ปดํฌ๋„ŒํŠธ๋Š” web componen..
ยท IT/React
์šฐ๋ฆฌ๋งŒ์˜ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค ์ƒˆ๋กญ๊ฒŒ ์ž…์ ์‚ฌ ํ”„๋กœ์ ํŠธ์— ๋“ค์–ด๊ฐ€๋ฉฐ ๋””์ž์ธ์‹œ์Šคํ…œ๋Œ€๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ํšŒ์‚ฌ ๋‚ด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค! ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋””์ž์ธ ์‹œ์Šคํ…œ์ด ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋•Œ๊ทธ๋•Œ ์‹œ์•ˆ์— ๋งž์ถฐ์„œ ์ž‘์—…ํ•ด์„œ ์†Œ์Šค๊ฐ€ ๋”๋Ÿฌ์› ๋‹ค ์ด๋ฒˆ ๊ธฐํšŒ์— ์šฐ๋ฆฌ๋งŒ์˜ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ ์ž ํ–ˆ๋‹ค ์œ„์ฒ˜๋Ÿผ ๋ฒ„ํŠผ์— ๋Œ€ํ•œ ๋””์ž์ธ ์‹œ์Šคํ…œ์ด ์ •์˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์ƒ‰์ƒ, ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค! Button Component ๋งŒ๋“ค๊ธฐ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๋ฉด ์ข‹์„๊นŒ์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•˜๋ฉฐ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ velog์˜ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ๋ดค๋Š”๋ฐ size, color๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•˜๊ณ  props๋กœ ๋ฐ›๋Š” ๋ถ€๋ถ„์ด ๋„ˆ๋ฌด ๊น”๋”ํ•˜๊ฒŒ ์ž˜๋˜์–ด ์žˆ์–ด ์ด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋‹ค ์‚ฌ์ด์ฆˆ ์Šคํƒ€์ผ๋ง ํ”ผ๊ทธ๋งˆ์— ์ •์˜๋œ ๋Œ€๋กœ ์‚ฌ์ด์ฆˆ๋ฅผ ๋‚˜๋ˆ„์–ด ๊ฐ๊ฐ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ƒ..
ํ™•์žฅ interface -extends๋ฅผ ์‚ฌ์šฉ type - &๋ฅผ ์‚ฌ์šฉ interface Student { major: string studentId: number } const mike: Student = { major: 'computer', studentId: 202212011 } type Student = { major: string studentId: number } const mike: Student = { major: 'computer', studentId: 202212011 } ์„ ์–ธ์  ํ™•์žฅ interface์—์„œ๋Š” ์ƒˆ๋กœ์šด ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ™์€ ์ด๋ฆ„์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, type์€ ์„ ์–ธ์  ํ™•์žฅ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. interface Student { major: string studentId: nu..
์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค! ์ด๊ฑด ๋‹น์—ฐํ•˜๋‹ค! 1. import ํ•  ๋•Œ ์ด๋ฏธ์ง€ ํŒŒ์ผ ๊ด€๋ จ ์—๋Ÿฌ Cannot find modules '../..' or its corresponding type declarations. ts(2307) ๋ผ๊ณ  ์ˆ˜๋งŽ์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋Ÿผ ํ•ด๊ฒฐํ•ด ๋ณด์ž! srcํŒŒ์ผ ์•„๋ž˜์— images.d.tsํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. (index.d.ts๋กœ ํŒŒ์ผ๋ช…์„ ํ•˜๋ฉด index.tsํŒŒ์ผ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ํ•ด์ฃผ๊ธฐ) ํ•„์š”ํ•œ ํ™•์žฅ์ž๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. declare module "*.png"; declare module "*.jpg"; tsconfig.json์— compilerOptions:{} ์•ˆ์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. "typeRoots": ["./src/@types"] ์ €์žฅ์„..
์ƒˆ๋กœ์šด ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•œ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณต์Šตํ•  ๊ฒธ ๊ธฐ์กด์˜ JavaScript๋กœ ๋งŒ๋“ค์—ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ TypeScript๋กœ ๋ณ€๊ฒฝํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. TypeScript๋ฅผ ์„ค์น˜ํ•œ๋‹ค. yarn add typescript @types/node @types/react @types/react-dom @types/jest // ๋˜๋Š” npm install typescript @types/node @types/react @types/react-dom @types/jest ๊ทธ๋‹ค์Œ yarn install // ๋˜๋Š” npm install tsconfig.jsonํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. (ํ˜น์€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด tsconfig.json์„ ์ตœ์ƒ๋‹จ์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.) ์•„๋ž˜ ์†Œ์Šค๋ฅผ tsconfig.json์— ์ถ”๊ฐ€ํ•ด..
ยท IT/React
์žฅ์  - children, propTypes, contextTypes, defaultProps, displayName์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์žˆ๋‹ค. ๋‹จ์  - children์ด ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ํƒ€์ž…์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค! type FC = FunctionComponent; interface FunctionComponent { (props: PropsWithChildren, context?: any): ReactElement | null; propTypes?: WeakValidationMap | undefined; contextTypes?: ValidationMap | undefined; defaultProps?: Partial | undefined; displayName?: string | unde..
์†”B
'typeScript' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก