๐ค ๊ธฐ์กด์ ์๊ณ ์๋ Duck typing๊ณผ Typescript ๊ตฌ์กฐ์ ํ์ดํ์ ์ฐจ์ด๋ฅผ ์ธ์งํ๊ณ ํ๊ณ๋ฅผ ํ์ ํฉ๋๋ค. Duck typing์ด๋ “๋ง์ฝ ์ด๋ค ์๊ฐ ์ค๋ฆฌ์ฒ๋ผ ๊ฑท๊ณ , ํค์์น๊ณ , ๊ฝฅ๊ฝฅ๊ฑฐ๋ฆฌ๋ ์๋ฆฌ๋ฅผ ๋ธ๋ค๋ฉด ๋๋ ๊ทธ ์๋ฅผ ์ค๋ฆฌ๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ด๋ค.” ๋ผ๋ ๋ง์์ ํ์ํ์์ผ๋ฉฐ, ๊ฐ์ฒด์ ํ์ ์ ๋ฏธ๋ฆฌ ์ ํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐํ์ ์ ๊ฐ์ฒด์ ํ์์ ๊ธฐ๋ฐํ์ฌ ํ์ ์์ฉ์ฑ์ ์ฒดํฌํ๋๋ก ํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ๋๋ค. type Person = { name: string, age: number, }; const personA = { name: 'ํฌ์', age: 27, }; const duckA = { name: '์ค๋ฆฌ', age: 2, }; const person: Person = duckA; // it's okay ํ์ ..
๋ง์ผ Typescript๋ก ๊ฐ๋ฐํ๋ ์ค์ ์์ฃผ ์ ์์ฑ๋ JS ๋ชจ๋์ ๊ฐ์ ธ์์ ์ฐ๊ณ ์ ํ๋ค๋ฉด, ํด๋น ๋ชจ๋ ๋ด์ ํจ์๋ typescript๋ก ์ ์๋์ด์์ง ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ๋ชจ๋์ด ํด๋น ์์ฑ์ ๊ฐ์ง๊ณ ์์์๋ type์ด ์ ํด์ ธ์์ง ์์์ ๊ฐ์ง๊ณ ์์ง ์๋ค๊ณ ํด์ํ๋ ๊ฒ์ด๋ค. ๋ค์๊ณผ ๊ฐ์ด declare ํค์๋๋ฅผ ์จ์ ์ ์ํด๋๋ฉด type์ด ์ธ์๋์ด typescript compiler๊ฐ ํด์ํ ์ ์๊ฒ ๋๋ค. declare let module: any ๊ฐ๋จํ ๋งํด์ ์ปดํ์ผ๋ฌ์๊ฒ "์ด๊ฑด ์ด๋ฏธ ์กด์ฌํ๊ณ ๋ค๋ฅธ ์ฝ๋์์ ์ฐธ์กฐํ ์ ์๋ค."๋ผ๊ณ ์ค๋ช ํ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ์ํฉ React context ์ฌ์ฉ ์ ๊ธฐ์กด ์ฝ๋ ๊ตฌ์ฑ์ด context ๋ด๋ถ ์์๊ฐ ๋์ด๋ ์๋ก ๋ณต์กํด์ ธ์ ๋ฆฌํฉํ ๋งํ๋ ค ํ๋ค. ๊ธฐ์กด ๊ตฌํ // ๊ตฌ์ฑ const UserContext = createContext({}); const SignInContext = createContextvoid>(()=>{}); export const UserContextProvider = ({ children }) => { const [user, setUser] = useState(); const signIn = () => {}; return ( {children} ); } export function useUserState() { const context = useContext(UserContext); return c..
module.exports = { 'parser': '@typescript-eslint/parser', 'plugins': ['@typescript-eslint'], 'env': { 'commonjs': true, 'browser': true, 'es2021': true, 'node' : true }, 'extends': [ 'airbnb', 'airbnb/hooks', 'plugin:@typescript-eslint/recommended' ], 'parserOptions': { 'project': './tsconfig.json', 'ecmaFeatures': { 'jsx': true, }, 'ecmaVersion': 12, 'sourceType': 'module', }, 'rules': { 'inden..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqypNd%2FbtqP6nZo3uk%2FMsqTCMSK06nkrP1gR5hTA0%2Fimg.png)
Typescript ์ฐธ๊ณ : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html (Typescript ๊ณต์ ์ฌ์ดํธ) ๋ฐฐ์ฐ๋ ์ด์ JS์์๋ Type์ด ๊ณ์ ์ฒดํฌ๋์ง ์๋๋ค. 1. ์ด๋ ์๋ฌต์ ํ๋ณํ, hoisting, ๋ณต์ก์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค. ์ด๋ฌํ ์ฝ๋ ์์ ์์์น ๋ชปํ ๋ฒ๊ทธ๋ฅผ ์์ ๊ธฐ ์ํด typescript๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค. hoisting : ๋์ด์ฌ๋ฆฐ๋ค๋ ๋ป. javascript์์ ์ ์ธ๋ฌธ์ ๋์ด์ฌ๋ ค ์ฝ๋์์ ์ฌ์ฉํ ๋ ์์์ ์๊ด์์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ธฐ์ . typescript๋ ๋ณต์กํ ์์ธ์ฒ๋ฆฌ ์ฝ๋ ์์ด ์ด๋ฅผ ์ํํ๋ค. 2. ํ์ ์์๋ ์ถํ์ ๋ณธ์ธ์ด ์ง ์ฝ๋๋ฅผ ๋ณด์์ ๋ ํ์ ์ด ์ ์๋์ด ์์ง ์๋ค๋ฉด ํ๋..
Comment