programing

ESLint의 "no-undef" 규칙이 언더스코어 사용을 정의되지 않은 변수라고 부르고 있습니다.

goodsources 2023. 3. 2. 22:12
반응형

ESLint의 "no-undef" 규칙이 언더스코어 사용을 정의되지 않은 변수라고 부르고 있습니다.

빌드 툴로서 Grunt를 사용하고, 작업중인 앱의 보풀 툴로서 ESLint를 사용하고 있습니다.Underscore Node 패키지도 사용하고 있으며, 앱에서 사용하고 있습니다.안타깝게도 ESLint를 코드로 실행하면 _가 다음 행에서 정의되지 않은 변수라고 생각됩니다.

return _.pluck(objects, nameColumn);

다음 오류가 발생합니다.

78:21 error "_" is not defined no-undef

ESLint에 대해 no-undefault 규칙을 비활성화하지 않는 것이 좋습니다.또한 언더스코어 플러그인을 설치하려고 했는데도 이 오류가 나타납니다.이걸로 뭘 해볼지 생각나는 사람이 있다면 정말 고맙겠다!

이 문제를 해결하는 데 도움이 될 만한 추가 정보가 있으면 알려주세요!

이 문제를 해결하는 방법에 대해서는 공식 문서를 참조하십시오.

선언되지 않은 변수에 대한 참조는 변수가 명시적으로 언급되지 않는 한 경고를 발생시킵니다./*global ...*/comment 또는 컨피규레이션파일의 키로 지정합니다.

가장 쉬운 수정은 다음과 같이 추가하는 것입니다.

/* global _ */

파일 맨 위에 있습니다.

또는 변수를 덮어쓸 수 없도록 변수를 읽기 전용으로 명시적으로 지정하는 것이 좋습니다.

/* global _:readonly */

그러나 새로운 js 파일마다 이 작업을 수행해야 하므로 번거로울 수 있습니다.언더스코어를 자주 사용하는 경우, 를 들어 다음과 같이 파일에 글로벌을 추가하는 것이 좋습니다.

{
    "globals": {
        "_": "readonly"
    }
}

그리고 이것을 로 저장해 주세요..eslintrc프로젝트 루트 또는 선택적으로 사용자 홈 디렉토리로 이동합니다.후자는 추천하지 않는다고 하는 사람도 있습니다만, 편리할 수도 있습니다만, 거기에 있는 것을 기억해 둘 필요가 있습니다.


의 규칙에 대한 설명:"_": "readonly"(과거에는"_": false, 현재는 폐지되었습니다)라는 이름의 변수가_eslint에게 이 변수는 글로벌하게 정의되어 있으며 어떤 변수도 내보내지 않음을 알립니다.no-undef이 변수의 에러입니다.@sebastian이 지적했듯이"readonly"(또는false- 권장되지 않음)은 변수를 덮어쓸 수 없음을 의미하므로 코드는_ = 'something else'에러가 발생합니다.no-global-assign그 대신 를 사용해 주세요."_": "writable"(또는"_": true- 권장되지 않음)은 값을 다시 지정할 수 있으며 앞에서 설명한 오류가 발생하지 않음을 의미합니다.

이는 글로벌 하십시오.아직 그림자를 그릴 수 있고 에슬린트는 아무 말도 안 할 거야.를 들어, 이런 은 '어느 정도', '어느 정도'는 나오지 않습니다.no-global-assign:

const _ = 'haha I broke your _' 

또는 함수 인수 이름으로 사용합니다.

function (_) {
  console.log(_, 'might not be the _ you were looking for') 
}

eslintrc.json에서의 테스트에 joke를 사용하는 경우

"env":{
    "jest":true
}

언급URL : https://stackoverflow.com/questions/34820817/eslints-no-undef-rule-is-calling-my-use-of-underscore-an-undefined-variable

반응형