We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eval
eval is evil
const getResult = () => { let replace_str = calc.replace(/×/gi, "*").replace(/÷/gi, "/"); if (isNaN(eval(replace_str))) { setCalc(""); } else if (eval(replace_str) == Infinity) { alert("0으로 나눌수 없습니다."); setCalc(""); return false; } else { setCalc((prev) => eval(replace_str)); } };
기존에 JS 레포에서 개발하다가 여기로 로직을 옮겨 오신 것으로 알고 있어요.
하지만 바꿀 게 그렇게 많아 보이지는 않아요! 빨간 줄이 뜨는 부분에 타입을 잘 달아 주면 돼요.
다음부터 코드를 짜실 때는, 제가 드린 Typescript 강의를 기반으로 리액트에 Typescript를 적용해보시면 됩니다.
예를 들어, 여기 있는 getNum 함수에 타입을 달아 볼게요.
getNum
const getNum = (e) => { setCalc((prev) => prev + e.target.value); setOperCheck(true); };
e
<Button onClick={(e) => {}}/>
React.MouseEvent<HTMLButtonElement, MouseEvent>
const getNum = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { setCalc((prev) => prev + e.target.value); setOperCheck(true); };
getNum이 실행될 때 onClick 안에서 실행될테니까, onClick이 주는 인자가 어떤 타입인지 알아본 뒤 이를 함수에 적용시킨 작업을 해 준 거에요!!
그런데 이걸 적용시키고 보니 다음과 같은 에러가 발생해요.
그러면 저와 같은 문제를 겪은 개발자들이 대신 문제를 해결한 과정을 알려준 수많은 포스트들을 볼 수 있어요.
제가 방금 타입을 명시함으로써 생긴 에러는 태현님께서 직접 해결해보시면 좋을 것 같아요! 그리고 이와 같은 방식으로 전체 프로젝트에 타입을 적용시켜보면 좋을 것 같아요.
결국 좋은 개발자는 문제 상황을 구글링을 통해 찾아보고, 좋은 해결책을 찾아 스스로 해결해 나갈 수 있는 개발자니까요.
간단히 해결할 수 있는 문제들이네요.
이외에도 고칠 게 조금 있어 보이긴 해요! 일단 이번 이슈에 제가 제시한 개선점들을 해결해 보시면 좋을 것 같아요.
The text was updated successfully, but these errors were encountered:
No branches or pull requests
리뷰
개선점
1.
eval
사용 지양eval
함수를 사용하신 걸 확인했어요.eval
을 쓰면 안 되는 이유를 물어보면 확인하실 수 있을 거에요. 대강 말씀해드리면, 코드 성능을 악화하고, 큰 보안 취약점을 유발할 수 있어요.eval
을 사용해서 구현하는 것이 아니라 직접 계산 로직을 구현해보시면 좋을 것 같아요.2. Typescript 적용
기존에 JS 레포에서 개발하다가 여기로 로직을 옮겨 오신 것으로 알고 있어요.
하지만 바꿀 게 그렇게 많아 보이지는 않아요! 빨간 줄이 뜨는 부분에 타입을 잘 달아 주면 돼요.
다음부터 코드를 짜실 때는, 제가 드린 Typescript 강의를 기반으로 리액트에 Typescript를 적용해보시면 됩니다.
예를 들어, 여기 있는
getNum
함수에 타입을 달아 볼게요.e
를 인자로 받고 있죠? 그런데 이e
의 타입을 어떻게 알 수 있을까요?e
의 타입을 살펴보면, 타입이React.MouseEvent<HTMLButtonElement, MouseEvent>
인 것을 확인할 수 있어요.getNum이 실행될 때 onClick 안에서 실행될테니까, onClick이 주는 인자가 어떤 타입인지 알아본 뒤 이를 함수에 적용시킨 작업을 해 준 거에요!!
그런데 이걸 적용시키고 보니 다음과 같은 에러가 발생해요.
그러면 저와 같은 문제를 겪은 개발자들이 대신 문제를 해결한 과정을 알려준 수많은 포스트들을 볼 수 있어요.
제가 방금 타입을 명시함으로써 생긴 에러는 태현님께서 직접 해결해보시면 좋을 것 같아요! 그리고 이와 같은 방식으로 전체 프로젝트에 타입을 적용시켜보면 좋을 것 같아요.
결국 좋은 개발자는 문제 상황을 구글링을 통해 찾아보고, 좋은 해결책을 찾아 스스로 해결해 나갈 수 있는 개발자니까요.
3. eslint가 고치라고 하는 것들 고쳐보기
간단히 해결할 수 있는 문제들이네요.
이외에도 고칠 게 조금 있어 보이긴 해요! 일단 이번 이슈에 제가 제시한 개선점들을 해결해 보시면 좋을 것 같아요.
The text was updated successfully, but these errors were encountered: