typescript/no-implied-eval 정확성
작동 방식
이 규칙은 평가 가능한 메서드의 사용을 금지합니다.
왜 문제가 될까요?
자바스크립트에서 eval()을 사용하는 것은 좋은 실천이 아니라고 여겨집니다. 이를 사용하면 보안 및 성능 측면에서 여러 문제를 초래할 수 있으며, 그래서 많은 린터들이 eval() 사용을 금지하도록 권장합니다. 그러나 문자열을 전달하고 이를 자바스크립트 코드로 해석하게 하는 다른 방법들도 유사한 우려를 가져옵니다.
예시
이 규칙에 부적절한 코드 예시:
ts
setTimeout('alert("안녕하세요!");', 100);
setInterval('alert("안녕하세요!");', 100);
setImmediate('alert("안녕하세요!")');
window.setTimeout("count = 5", 10);
window.setInterval("foo = bar", 10);
const fn = new Function("a", "b", "return a + b");이 규칙에 적절한 코드 예시:
ts
setTimeout(() => {
alert("안녕하세요!");
}, 100);
setInterval(() => {
alert("안녕하세요!");
}, 100);
setImmediate(() => {
alert("안녕하세요!");
});
const fn = (a: number, b: number) => a + b;사용 방법
구성 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/no-implied-eval": "error"
}
}bash
oxlint --type-aware --deny typescript/no-implied-eval