๋ชฉ๋กWEB/Typescript (4)
์ฐ์ ๊ธฐ๋ก ๐ช
๐ ๋ฌธ์ ์ํฉ require๋ฌธ์ import๋ก ๋ฐ๊พธ๋ ์์ ์ ํ๋ ๋์ค const express = require(’express’)๋ฅผ import express from ‘express’๋ก ๋ฐ๊ฟจ๋๋ ์๋ ๋ถ๋ถ์์ Property 'session' does not exist on type 'Request'.ts(2339) ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๐ก ํด๊ฒฐ ๋ฐฉ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋จผ์ @types/express-session์ ์ค์นํด์ค์ผ ํ๋ค. ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๋๋ก ํ์. npm install -D @types/express-session@1.17.0 ์ดํ ๊ทธ๋ฌ๊ณ ๋๋ฉด req.logout๊ณผ req.session.destroy๊ฐ ๊ฐ๊ฐ ์ฝ๋ฐฑํจ์๋ฅผ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ req.logout์ด ๋๋ฉด req.sessio..
๐ ๋ฌธ์ ์ํฉ ๋ก๊ทธ์์ ํจ์์ ๋ํ ํ ์คํธ ์ฝ๋๋ฅผ ์ง๋ ๋์ค ์๋ ์๋ฌ์ ๋ง์ฃผํ๋ค. Argument of type OOO is not assignable to parameter of type 'Request'. ์๋ ํ ์คํธํ๋ ค๋ logout ํจ์๋ ์๋์ ๊ฐ์ด ์๊ฒผ๋ค. ///authService.ts const logout = async (req: Request, res: Response) => { req.logout(() => { req.session.destroy(() => { success(res, statusCode.OK, responseMessage.SUCCESS, { session: req.session, }); }); }); }; ๊ทธ๋ฆฌ๊ณ ํ ์คํธ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. //authService.t..
JavaScript๋ก ์์ฑ๋ ์ฝ๋๋ฅผ TypeScript๋ก ๋ณ๊ฒฝํ๋ฉด์ ๋ง๋ฌ๋ ๋ง์ ์๋ฌ์ ๋ํด ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ export๋ import๊ฐ ์์ผ๋ฉด ์คํฌ๋ฆฝํธ๋ก ํด์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ด๋ฆ์ ๋ณ์๋ฅผ ์ ์ธํ๋ค๋ฉด(๋ค๋ฅธ ํ์ผ์์๋!!!) ์๋ฌ๋ฅผ ๋ธ๋ค. ํ์ผ์ ๋์ export {}; ๋ฅผ ์ถ๊ฐํ๋ฉด ์๋ฌ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ํ์ ์คํฌ๋ฆฝํธ๋ ํจ์๋ฅผ ์ ์ธํ ๋ ์์ฑํ ์ธ์๋ฅผ ๋๊ฒจ์ฃผ์ง ์์ผ๋ฉด ์๋ฌ๋ฅผ ๋ธ๋ค. ์์๋ ๋ค์๊ณผ ๊ฐ๋ค. function hihi(a, b) { return a+b; } //์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ๋ ์ํฉ์ ๋ํด ์๋ํฐ์์ ์๋ฌ๋ฅผ ๋ด์ง ์์ง๋ง ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฌ๋ฅผ ๋ธ๋ค. hihi(1); hihi(1,2,3); //๋ง์ฝ ์ฌ์ฉํ ์๋ ์๊ณ ์ฌ์ฉํ์ง ์์ ์๋ ์๋ ์ธ์๊ฐ ์๋ค๋ฉด ๋ช ์์ ์ผ๋ก ?๋ฅผ ๋ถ์ฌ..
์ด์ ์ ์งํํ๋ ํ๋ก์ ํธ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ฉฐ javascript๋ก ์์ฑํ๋ ํ์ผ์ ํ์ฅ์๋ฅผ ts๋ก ์์ ํ๋ค. ๊ทธ๋ฌ์ Cannot redeclare block-scoped variable ‘OOO’ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๊ตฌ๊ธ๋ง์ ํตํด ์ป์ ๊ฒฐ๋ก ์ “ํ์ ์คํฌ๋ฆฝํธ๋ ํ์ผ์ top-level์ import๋ export๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ํ์ผ์ ๋ชจ๋์ด ์๋ ์คํฌ๋ฆฝํธ ํ์ผ๋ก ์ธ์ํ๊ณ , ํ์ผ ๋ด์ ์ ์ธ๋ ๋ณ์๋ window, global๊ณผ ๊ฐ์ ์ ์ญ ์ค์ฝํ์ ์ํฅ์ ๋ฏธ์น๋ค.” ์ด๋ค. ์ฆ ์ฐ๋ฆฌ์ ํ์ฌ ์ฝ๋์๋ require๋ฌธ๋ง ์์ด์ ๋ณ์๊ฐ ์ ์ญ ์ค์ฝํ์ ์ํฅ์ ๋ฏธ์ณ ๊ฐ์ ์ด๋ฆ์ผ๋ก require๋ฅผ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ํ์ผ์ ๊ฐ์ฅ ์๋์ export {}; ๋ฅผ ์ถ๊ฐํด์ค์ ์ด ํ์ผ์..