Skip to content
← Back to rules

typescript/no-implied-eval 정확성

This rule is turned on by default when type-aware linting is enabled.
💭 This rule requires type information.

작동 방식

이 규칙은 평가 가능한 메서드의 사용을 금지합니다.

왜 문제가 될까요?

자바스크립트에서 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

참고 자료