ESLint의 no-restricted-syntax로 for-of만 허용
ES2015 for-of를 사용하려고하면
no-restricted-syntax
으로 오류가 발생합니다. 다음 기사가 매우 도움이되었습니다.ESLint 지원 이야기 ~ no-restricted-syntax ~
사정은 알았지만 여전히 for-of를 사용하고 싶습니다!
그러나
for-in
라든지는 금지로 좋기 때문에 no-restricted-syntax
자체를 무효로 하고 싶지 않다!라는 것은 for-of만을 허용하는 방법입니다.
우선 airbnb-base의 대원의 설정을 확인. 이번에는이 파일이었습니다.
node_modules/eslint-config-airbnb-base/rules/style.js
// disallow certain syntax forms
// http://eslint.org/docs/rules/no-restricted-syntax
'no-restricted-syntax': [
'error',
{
selector: 'ForInStatement',
message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.',
},
{
selector: 'ForOfStatement',
message: 'iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.',
},
{
selector: 'LabeledStatement',
message: 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.',
},
{
selector: 'WithStatement',
message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.',
},
],
이 부분을 자신의 .eslintrc에 전기하고 불필요한 부분을 삭제하면 OK
나는 yaml로 쓰고 있으므로, 알기 쉽도록 코멘트 아웃으로 해 보았습니다.
.eslintrc.yml
# for-ofは認める
no-restricted-syntax:
- error
- selector: 'ForInStatement'
message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.'
# - selector: 'ForOfStatement'
# message: 'iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.'
- selector: 'LabeledStatement'
message: 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.'
- selector: 'WithStatement'
message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.'
처음에는 "대원의
no-restricted-syntax
에서 설정 끝난 selector 중 ForOfStatement
만을 무효로 한다"라고 생각했습니다만, 그렇지 않고 "스스로 no-restricted-syntax
을 쓴 경우는 대원의 no-restricted-syntax
의 설정만이 사용된다」라고 하는 것이군요.no-restricted-syntax
뿐만 아니라 다른 규칙에서도 마찬가지입니다. 어쩌면 ESLint 자체의 사양으로 누군가가 정리하고 있다고는 생각하지만, 발견되지 않았습니다 그럼 또.
2017/10/31 추가
airbnb-base 의 규칙은 너무 엄격해서, 본건 이외에도 여러가지 귀찮은 요소가 많아 시간을 점점 낭비하는 것을 깨닫고, 사용하는 그만두었습니다!
지금은 standard 사용하고 있습니다. 무엇보다 「세미콜론 쓰지 않는다」라고 곳에 반했습니다! 벌써 세미콜론 쓰지 않는 것만으로 효율이 전혀 오른다 (웃음)
Reference
이 문제에 관하여(ESLint의 no-restricted-syntax로 for-of만 허용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/the_red/items/0c826e97b57da6d67621텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)