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..
Typescript ์ฐธ๊ณ : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html (Typescript ๊ณต์ ์ฌ์ดํธ) ๋ฐฐ์ฐ๋ ์ด์ JS์์๋ Type์ด ๊ณ์ ์ฒดํฌ๋์ง ์๋๋ค. 1. ์ด๋ ์๋ฌต์ ํ๋ณํ, hoisting, ๋ณต์ก์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค. ์ด๋ฌํ ์ฝ๋ ์์ ์์์น ๋ชปํ ๋ฒ๊ทธ๋ฅผ ์์ ๊ธฐ ์ํด typescript๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค. hoisting : ๋์ด์ฌ๋ฆฐ๋ค๋ ๋ป. javascript์์ ์ ์ธ๋ฌธ์ ๋์ด์ฌ๋ ค ์ฝ๋์์ ์ฌ์ฉํ ๋ ์์์ ์๊ด์์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ธฐ์ . typescript๋ ๋ณต์กํ ์์ธ์ฒ๋ฆฌ ์ฝ๋ ์์ด ์ด๋ฅผ ์ํํ๋ค. 2. ํ์ ์์๋ ์ถํ์ ๋ณธ์ธ์ด ์ง ์ฝ๋๋ฅผ ๋ณด์์ ๋ ํ์ ์ด ์ ์๋์ด ์์ง ์๋ค๋ฉด ํ๋..
TS2691: import .ts file ์ฐธ๊ณ : https://github.com/microsoft/TypeScript/issues/37582 https://github.com/microsoft/TypeScript/issues/27481 https://github.com/microsoft/TypeScript/issues/39965 ์ด ์ค๋ฅ๋ typescript ํ์ผ์ ์ฐพ์ ์ ์์ด์ ๋๋ ์ค๋ฅ์ด๋ค. import A from 'A.tsx'; ์์ ๊ฐ์ด ํ์ผ์ ๋ถ๋ฌ์ค๋ฉด, import ์ ์ ts / tsx ํ์ผ์ด js / jsx ๋ก ๋ณํ๋๊ธฐ ๋๋ฌธ์ ํด๋น ํ์ผ์ ์ฐพ์ ์ ์๋ค๋ ์๋ฌ๊ฐ ๋ฌ๋ค. ๋ฐ๋ผ์, ๋จ์ํ ํ์ฅ์๋ฅผ ๋ถ์ด์ง ์๊ณ import ํด์ค๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ธ๋ฐ ๊ทธ๋ ๊ฒ ํ๋ฉด esl..
[2021-03-04 ์ต์ข ์์ ] ๋ฐ๋จ KOS ํ๋ก์ ํธ ์งํ ์ค์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Redux, Mobx)๋ฅผ ์ถํ ๋์ ํ๊ธฐ๋ก ํ๊ณ , ๋จผ์ MVVM ํจํด๋ง ์ฌ์ฉํ๊ธฐ๋ก ํ์๋ค. ํ์ง๋ง ๊ธฐ์กด์ ๋์์๋ ํด๋ ๊ตฌ์กฐ๋ค์ ๋ชจ๋ react์ Redux / Mobx ๋ฅผ ์ฐ๋ํ์ฌ ๋ง๋ค์ด๋ธ ๊ตฌ์กฐ๋ค์ด์๋ค. ๋ค์์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ MVVM ํจํด์ ๊ตฌํํ ์ฌ์ดํธ์ด๋ค. https://github.com/davinci2015/react-mvvm-pokemon ( Class ์ด์ฉ ) https://velog.io/@dlrmsghks7/whatismvvmpattern ( Hook ์ด์ฉ ) ์์ ์ฌ์ดํธ๋ค์์ ์ ์ํ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ณด์. View, View Controller, View Model, Model..
์์กด์ฑ ์๋ฌ ํด๊ฒฐ ์๋ฌ ๋ฐ์ ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ด๋ค. CRA๊ฐ ์ ๊ณตํ๋ react-scripts ํจํค์ง๊ฐ eslint 6.6.0 ๋ฒ์ ์ ์์กดํ๋๋ฐ, 7.2.0 ๋ฒ์ ์ ์ค์นํด์ ๊ทธ๋ ๋ค๊ณ ํ๋ค. ์ ๋ฐ์ ๋์ค๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ๋ฐ๋ผํด๋ ํด๊ฒฐ๋์ง ์๋๋ค ใ ... ์ ๋ฒ์๋ ๊ฐ์ ๋ฌธ์ ๋ก ์์ฉ์ฌ์ ์ด๋ฒ์ ์ ๋๋ก ๊ฐ์ก๊ณ ํด๊ฒฐํด๋ณด๋ ค๊ณ ํ๋ค. ์ด์ ๋ฐ๊ฒฌ ์ด์ ๋ ๊ตฌ๊ธ๋งํ๋ค๊ฐ ๋ฐ๊ฒฌํ๋๋ฐ(https://github.com/wesbos/eslint-config-wesbos/issues/17) , react-scripts์ eslint ์์กด์ฑ ๋ฒ์ ๊ณผ airbnb linting์์์ eslint ์์กด์ฑ ๋ฒ์ ์ด ์ผ์นํ์ง ์์์ ๋์ค๋ ๋ฌธ์ ์๋ค. ๋ป์ง ๊ทธ๋์ ์ผ๋จ react-scripts version์ `npm view react-s..
VScode์์ eslint๊ฐ ์ ์ฉ์ด ์๋๊ณ ์๊พธ ํด๋น ์๋ฌ๊ฐ ๋จ๊ธธ๋ ๊ฒ์ํด๋ดค๋ค. ๋ฒ์ ์ด ์ ๋ง์์ ๊ทธ๋ฐ ๊ฒ์ด๋ VScode๋ฅผ ๋ค์ ๊น๋ฉด ๋ฒ์ ์ ๋ฐ์ดํธ๋๋ฉด์ eslint๊ฐ ์ ๋๋ค. ๋ค์ด๋ก๋ : code.visualstudio.com/download ์ฐธ๊ณ : https://github.com/typescript-eslint/typescript-eslint/issues/2020
์ฐธ๊ณ : https://hoilzz.github.io/webpack/11-eslint-prettier/ eslint์ parser๊ฐ ๊ณต์์ ์ผ๋ก ES ํ์ค๋ง์ ์ง์ํ๊ธฐ ๋๋ฌธ์, ES6~7 ํ์ฑ ์ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ๋ฐ๋ผ์, .eslintrc.js ํ์ผ์ export default๋ฅผ module.export๋ก ๋ณ๊ฒฝํ๊ธฐ export๋ ES6 syntax์ด๊ณ , module export๋ commonJS syntax์ด๋ค. babel-eslint ์ค์น ํ .eslintrc.js์ "parser": "babel-eslint",์ถ๊ฐํ๊ธฐ ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์คํ์ฑํ ๋ฐฉ ๋ฌธ์ ์นด์นด์คํก ์คํ์ฑํ ๋ฐฉ์์๋ ์น๊ตฌ๊ฐ ์๋ ์ฌ๋๋ค๊ณผ ๋ํ๋ฅผ ํ ์ ์๋๋ฐ, ๋ณธ๋ ๋๋ค์์ด ์๋ ๊ฐ์์ ๋๋ค์์ ์ฌ์ฉํ์ฌ ์ฑํ ๋ฐฉ์ ๋ค์ด๊ฐ ์ ์๋ค. ์ ์ ์ฌ์์ธ ๊นํฌ๋ฃจ๋ ์นด์นด์คํก ์คํ ์ฑํ ๋ฐฉ์ ๊ฐ์คํ ์ฌ๋์ ์ํด, ๋ค์ํ ์ฌ๋๋ค์ด ๋ค์ด์ค๊ณ , ๋๊ฐ๋ ๊ฒ์ ์ง์ผ๋ณผ ์ ์๋ ๊ด๋ฆฌ์์ฐฝ์ ๋ง๋ค๊ธฐ๋ก ํ๋ค. ์ฑํ ๋ฐฉ์ ๋๊ตฐ๊ฐ ๋ค์ด์ค๋ฉด ๋ค์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค. [๋๋ค์]๋์ด ๋ค์ด์์ต๋๋ค. ์ฑํ ๋ฐฉ์์ ๋๊ตฐ๊ฐ ๋๊ฐ๋ฉด ๋ค์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค. [๋๋ค์]๋์ด ๋๊ฐ์ต๋๋ค. ์ฑํ ๋ฐฉ์์ ๋๋ค์์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ง์ด๋ค. ์ฑํ ๋ฐฉ์ ๋๊ฐ ํ, ์๋ก์ด ๋๋ค์์ผ๋ก ๋ค์ ๋ค์ด๊ฐ๋ค. ์ฑํ ๋ฐฉ์์ ๋๋ค์์ ๋ณ๊ฒฝํ๋ค. ๋๋ค์์ ๋ณ๊ฒฝํ ๋๋ ๊ธฐ์กด์ ์ฑํ ๋ฐฉ์ ์ถ๋ ฅ๋์ด ์๋ ๋ฉ์์ง์ ๋๋ค์๋ ์ ๋ถ ๋ณ๊ฒฝ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฑํ ๋ฐฉ์..
Comment