๐ Unexpected token
ESLint ๊ตฌ๋ฌธ ๋ถ์์์ ์๊ธฐ์น ์์ ํ ํฐ ์ค๋ฅ๋ JavaScript ES6~7์ ์ง์์ ์ธ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ESLint์ ํ์ฌ ๊ตฌ๋ฌธ ๋ถ์ ๊ธฐ๋ฅ ๊ฐ์ ๋นํธํ์ฑ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
ESLint๋ฅผ ํธํ ๊ฐ๋ฅํ ํ์(์: @babel/eslint-parser ๋๋ babel-eslint v7 ์ดํ babel ๋ฒ์ ์ฉ)๋ก ๊ตฌ๋ฌธ ๋ถ์์ ํตํด ํด๊ฒฐํ ์ ์์ต๋๋ค.
1. Terminal์ npm install @babel/eslint-parser --save-dev ์คํ
2..eslintrc
ํ์ผ์ "parser": "@babel/eslint-parser" ์ถ๊ฐ
*์ฐธ๊ณ ์ฌ์ดํธ: ESLint Parsing error: Unexpected token
์๋ ์ฝ๋๋ฅผ ์์ฑํ์ ๋ ๋ฐ์ํ ์ค๋ฅ์ ๋๋ค.
๐ const
์ ๋ํ ์ค๋ฅ
The 'const' modifier can only be used in TypeScript files.ts(8009)
๐ validator
์ ๋ํ ์ค๋ฅ
Parsing error: Unexpected token
const validator = {
id: input => input.length >= 10,
email: input => {
const regExp = /^[a-zA-Z\d+-.]+@[a-zA-Z\d+-.]+\.[a-zA-Z]{2,3}$/;
return regExp.test(input);
},
password: input => {
const regExp =
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*-_])[A-Za-z\d!@#$%^&*-_]{10,}$/;
return regExp.test(input);
},
};
const ์์ฝ์ด๋ฅผ ์ญ์ ํ์ ๋ฟ์ธ๋ฐ ํด๊ฒฐ..?
1๋ฒ์์ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ถ๊ฐ๋ก ์์ฑํ ์ค์ ๋ค์ ๋๋๋ฆผ.
์ด์ ๋ ๋์ค์ ์๋ ค์ฃผ์ ๋ค ํจ..
๋ก๊ทธ์ธ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ถ๋ ฅ๋๋ alert ๋ฉ์์ง๋ฅผ messages ๊ฐ์ฒด๋ก ์์ฑํ์ต๋๋ค.
response message(key)์ ๋ฐ๋ผ ํด๋นํ๋ ๋ฉ์์ง(value)๊ฐ ์ถ๋ ฅ๋๋๋ก if-else ์กฐ๊ฑด๋ฌธ์ ์์ฑํ์ต๋๋ค.
(์ฐธ๊ณ : key๋ก ์ค์ ํ ๋ฉ์์ง๋ ๋ฐฑ์๋์์ ์ค์ ํ ๊ฒ์
๋๋ค.)
const messages = {
LOGIN_SUCCESS: `๋ก๊ทธ์ธ์ ์ฑ๊ณตํ์ต๋๋ค. ${this.state.id}๋ ๋ฐ๊ฐ์ต๋๋ค!`,
INVALID_USER: "์๋ชป๋ ํ์์ ๋ณด์
๋๋ค. ์์ด๋๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์.",
INVALID_PASSWORD: "์๋ชป๋ ํ์์ ๋ณด์
๋๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์.",
};
if (res.message === "LOGIN_SUCCESS") {
alert(messages[res.message]);
} else if (res.message === "INVALID_USER") {
alert(messages[res.message]);
} else if (res.message === "INVALID_PASSWORD") {
alert(messages[res.message]);
}
๐ Refactoring
alert(messages[res.message])๋ง ์์ด๋ response message์ ๋ฐ๋ฅธ ๊ฐ์ ๊ฐ๊ฐ ์ถ๋ ฅํ ์ ์์ต๋๋ค!
alert(messages[res.message]);
res๋ง์ผ๋ก ์ถ๋ ฅํ ์ ์๊ณ res.message๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
(res.MESSAGE์ ๊ฐ์ด ๋๋ฌธ์๋ก ์์ฑํ์ ๋์์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น?)