Skip to content

eslint/js

INFO

이 문서는 ChatGPT 5.5를 통해 작성되었습니다.

기준일: 2026-04-29
기준 버전: @eslint/js@10.2.1
출처: ESLint Rules Reference

Possible Problems

규칙설명
array-callback-return배열 메서드의 콜백에서 값을 반환해야 하는 경우 return 누락을 방지합니다.
constructor-super상속 클래스의 생성자에서 super() 호출을 강제합니다.
for-directionfor 루프의 증감식이 종료 조건과 반대 방향으로 움직이는 실수를 방지합니다.
getter-returngetter에서 값을 반환하도록 강제합니다.
no-async-promise-executorPromise 생성자의 executor 함수를 async로 선언하지 못하게 합니다.
no-await-in-loop반복문 안의 await 사용을 금지해 불필요한 순차 실행을 방지합니다.
no-class-assign클래스 식별자에 다시 값을 할당하지 못하게 합니다.
no-compare-neg-zero-0과 직접 비교하는 코드를 금지합니다.
no-cond-assign조건식 안에서 대입 연산자를 사용하는 실수를 방지합니다.
no-const-assignconst, using, await using 변수의 재할당을 금지합니다.
no-constant-binary-expression연산 결과가 항상 같아지는 무의미한 이항 표현식을 금지합니다.
no-constant-condition조건문에 항상 참 또는 거짓인 상수 조건을 쓰지 못하게 합니다.
no-constructor-return클래스 생성자에서 값을 반환하지 못하게 합니다.
no-control-regex정규식 안의 제어 문자를 금지합니다.
no-debuggerdebugger 문 사용을 금지합니다.
no-dupe-args함수 매개변수 이름 중복을 금지합니다.
no-dupe-class-members클래스 멤버 이름 중복을 금지합니다.
no-dupe-else-ifif-else-if 체인에서 같은 조건을 반복하지 못하게 합니다.
no-dupe-keys객체 리터럴의 키 중복을 금지합니다.
no-duplicate-caseswitch문의 중복 case 라벨을 금지합니다.
no-duplicate-imports같은 모듈을 여러 번 import하지 못하게 합니다.
no-empty-character-class정규식의 빈 문자 클래스를 금지합니다.
no-empty-pattern빈 구조 분해 패턴을 금지합니다.
no-ex-assigncatch 절의 예외 변수 재할당을 금지합니다.
no-fallthroughswitch문의 의도치 않은 fallthrough를 방지합니다.
no-func-assign함수 선언 이름에 다시 값을 할당하지 못하게 합니다.
no-import-assignimport로 가져온 바인딩에 값을 할당하지 못하게 합니다.
no-inner-declarations중첩 블록 안의 변수 또는 함수 선언을 제한합니다.
no-invalid-regexpRegExp 생성자에 잘못된 정규식 문자열을 넘기지 못하게 합니다.
no-irregular-whitespace눈에 잘 보이지 않는 비정상 공백 문자를 금지합니다.
no-loss-of-precision정밀도를 잃는 숫자 리터럴을 금지합니다.
no-misleading-character-class여러 코드 포인트로 구성된 문자를 정규식 문자 클래스에서 오해되게 쓰는 것을 방지합니다.
no-new-native-nonconstructor생성자가 아닌 전역 함수에 new를 붙이지 못하게 합니다.
no-obj-calls함수가 아닌 전역 객체 속성을 함수처럼 호출하지 못하게 합니다.
no-promise-executor-returnPromise executor 함수에서 값을 반환하지 못하게 합니다.
no-prototype-builtins객체에서 Object.prototype 메서드를 직접 호출하지 못하게 합니다.
no-self-assign좌우가 같은 자기 자신 대입을 금지합니다.
no-self-compare같은 값을 서로 비교하는 코드를 금지합니다.
no-setter-returnsetter에서 값을 반환하지 못하게 합니다.
no-sparse-arrays구멍이 있는 배열 리터럴을 금지합니다.
no-template-curly-in-string일반 문자열 안에 템플릿 리터럴처럼 보이는 ${...} 문법을 쓰는 실수를 잡습니다.
no-this-before-super파생 클래스 생성자에서 super() 호출 전 this 또는 super 사용을 금지합니다.
no-unassigned-vars읽히지만 한 번도 값이 할당되지 않은 let 또는 var 변수를 금지합니다.
no-undef선언되지 않은 변수 사용을 금지합니다.
no-unexpected-multiline자동 세미콜론 삽입으로 헷갈릴 수 있는 여러 줄 표현식을 방지합니다.
no-unmodified-loop-condition반복 중 바뀌지 않는 루프 조건을 금지합니다.
no-unreachablereturn, throw, continue, break 뒤의 도달 불가능한 코드를 금지합니다.
no-unreachable-loop본문이 한 번만 실행될 수 있는 루프를 금지합니다.
no-unsafe-finallyfinally 블록에서 흐름 제어문을 사용해 예외나 반환값을 덮어쓰는 것을 방지합니다.
no-unsafe-negation관계 연산자의 왼쪽 피연산자를 부정하는 위험한 표현을 금지합니다.
no-unsafe-optional-chainingundefined가 허용되지 않는 위치에서 optional chaining 결과를 사용하는 것을 금지합니다.
no-unused-private-class-members사용하지 않는 private 클래스 멤버를 금지합니다.
no-unused-vars사용하지 않는 변수를 금지합니다.
no-use-before-define선언 전에 변수, 함수, 클래스를 사용하는 것을 제한합니다.
no-useless-assignment할당한 값이 사용되지 않는 변수 대입을 금지합니다.
no-useless-backreference정규식에서 의미 없는 역참조를 금지합니다.
require-atomic-updatesawait 또는 yield 때문에 경쟁 상태가 생길 수 있는 대입을 방지합니다.
use-isnanNaN 검사는 직접 비교 대신 isNaN() 계열 호출을 사용하도록 강제합니다.
valid-typeoftypeof 비교 문자열이 유효한 값인지 검사합니다.

Suggestions

규칙설명
accessor-pairs객체와 클래스에서 getter와 setter 쌍을 맞추도록 강제합니다.
arrow-body-style화살표 함수 본문에 중괄호 사용 여부를 일관되게 합니다.
block-scoped-var변수가 선언된 스코프 안에서만 사용되도록 강제합니다.
camelcase식별자에 camelCase 이름 규칙을 강제합니다.
capitalized-comments주석 첫 글자의 대문자 사용 여부를 강제하거나 금지합니다.
class-methods-use-this클래스 메서드가 this를 사용하도록 요구합니다.
complexity순환 복잡도의 최대값을 제한합니다.
consistent-return함수의 return이 항상 값을 반환하거나 항상 반환하지 않도록 일관성을 강제합니다.
consistent-this현재 실행 컨텍스트를 저장할 때 사용하는 별칭 이름을 일관되게 합니다.
curly모든 제어문에서 중괄호 스타일을 일관되게 강제합니다.
default-caseswitch문에 default 절을 요구합니다.
default-case-lastswitch문의 default 절이 마지막에 오도록 강제합니다.
default-param-last기본값이 있는 매개변수를 매개변수 목록 뒤쪽에 두도록 강제합니다.
dot-notation가능한 경우 대괄호 접근 대신 점 표기법을 사용하도록 합니다.
eqeqeq==, != 대신 ===, !== 사용을 강제합니다.
func-name-matching함수 이름이 할당되는 변수나 속성 이름과 일치하도록 요구합니다.
func-names함수 표현식 이름 사용 여부를 강제합니다.
func-style함수 선언식과 함수 표현식 중 하나의 스타일을 일관되게 강제합니다.
grouped-accessor-pairs객체 리터럴과 클래스에서 getter/setter 쌍을 붙여 쓰도록 요구합니다.
guard-for-infor-in 루프에 필터링용 if 문을 포함하도록 요구합니다.
id-denylist지정한 식별자 이름 사용을 금지합니다.
id-length식별자 길이의 최소값과 최대값을 제한합니다.
id-match식별자가 지정한 정규식 패턴을 따르도록 강제합니다.
init-declarations변수 선언 시 초기화 여부를 요구하거나 금지합니다.
logical-assignment-operators논리 할당 연산자 축약형 사용 여부를 강제합니다.
max-classes-per-file파일 하나에 선언할 수 있는 클래스 수를 제한합니다.
max-depth중첩 블록 깊이를 제한합니다.
max-lines파일의 최대 줄 수를 제한합니다.
max-lines-per-function함수 하나의 최대 줄 수를 제한합니다.
max-nested-callbacks콜백 중첩 깊이를 제한합니다.
max-params함수 매개변수 개수를 제한합니다.
max-statements함수 블록 안의 문장 수를 제한합니다.
new-cap생성자 이름이 대문자로 시작하도록 요구합니다.
no-alertalert, confirm, prompt 사용을 금지합니다.
no-array-constructorArray 생성자 사용을 금지합니다.
no-bitwise비트 연산자 사용을 금지합니다.
no-callerarguments.caller, arguments.callee 사용을 금지합니다.
no-case-declarationscase 절에서 블록 없는 lexical 선언을 금지합니다.
no-consoleconsole 사용을 금지합니다.
no-continuecontinue 문 사용을 금지합니다.
no-delete-var변수 삭제를 금지합니다.
no-div-regex정규식 시작 부분의 /= 혼동을 피하도록 제한합니다.
no-else-returnif에서 return 후 불필요한 else 블록을 금지합니다.
no-empty빈 블록 문을 금지합니다.
no-empty-function빈 함수를 금지합니다.
no-empty-static-block빈 static 블록을 금지합니다.
no-eq-nullnull 비교에 타입 체크 없는 동등 연산자를 쓰지 못하게 합니다.
no-evaleval() 사용을 금지합니다.
no-extend-native네이티브 객체 확장을 금지합니다.
no-extra-bind불필요한 .bind() 호출을 금지합니다.
no-extra-boolean-cast불필요한 boolean 변환을 금지합니다.
no-extra-label불필요한 라벨을 금지합니다.
no-global-assign네이티브 객체나 읽기 전용 전역 변수에 값을 할당하지 못하게 합니다.
no-implicit-coercion짧은 형태의 암묵적 타입 변환을 금지합니다.
no-implicit-globals전역 스코프 선언을 금지합니다.
no-implied-evaleval()처럼 동작하는 메서드 사용을 금지합니다.
no-inline-comments코드 뒤에 붙는 인라인 주석을 금지합니다.
no-invalid-thisthisundefined가 되는 문맥에서 this 사용을 금지합니다.
no-iterator__iterator__ 속성 사용을 금지합니다.
no-label-var변수와 같은 이름의 라벨을 금지합니다.
no-labels라벨 문 사용을 금지합니다.
no-lone-blocks불필요한 중첩 블록을 금지합니다.
no-lonely-ifelse 블록 안에 단독 if만 있는 패턴을 금지합니다.
no-loop-func루프 안에서 안전하지 않은 참조를 캡처하는 함수 선언을 금지합니다.
no-magic-numbers의미를 알기 어려운 숫자 리터럴 사용을 금지합니다.
no-multi-assign연쇄 대입 표현식 사용을 금지합니다.
no-multi-str백슬래시로 이어지는 여러 줄 문자열을 금지합니다.
no-negated-condition부정 조건문 사용을 금지합니다.
no-nested-ternary중첩 삼항 연산자를 금지합니다.
no-new결과를 사용하지 않는 new 호출을 금지합니다.
no-new-funcFunction 생성자와 함께 new를 사용하지 못하게 합니다.
no-new-wrappersString, Number, Boolean 래퍼 객체 생성자를 new로 호출하지 못하게 합니다.
no-nonoctal-decimal-escape문자열 리터럴에서 \8, \9 escape 시퀀스를 금지합니다.
no-object-constructor인자 없는 Object 생성자 호출을 금지합니다.
no-octal8진수 리터럴을 금지합니다.
no-octal-escape문자열 리터럴의 8진 escape 시퀀스를 금지합니다.
no-param-reassign함수 매개변수 재할당을 금지합니다.
no-plusplus++, -- 단항 연산자를 금지합니다.
no-proto__proto__ 속성 사용을 금지합니다.
no-redeclare변수 재선언을 금지합니다.
no-regex-spaces정규식 안의 연속 공백을 금지합니다.
no-restricted-exports지정한 이름의 export를 금지합니다.
no-restricted-globals지정한 전역 변수 사용을 금지합니다.
no-restricted-imports지정한 모듈 import를 금지합니다.
no-restricted-properties지정한 객체의 지정한 속성 사용을 금지합니다.
no-restricted-syntax지정한 AST 구문 사용을 금지합니다.
no-return-assignreturn 문 안의 대입 연산자를 금지합니다.
no-script-urljavascript: URL 사용을 금지합니다.
no-sequences쉼표 연산자 사용을 금지합니다.
no-shadow바깥 스코프 변수와 같은 이름의 변수를 선언하지 못하게 합니다.
no-shadow-restricted-names제한된 이름을 가리는 식별자 선언을 금지합니다.
no-ternary삼항 연산자 사용을 금지합니다.
no-throw-literal예외로 리터럴을 던지는 것을 금지합니다.
no-undef-init변수를 undefined로 명시 초기화하는 것을 금지합니다.
no-undefinedundefined를 식별자로 사용하는 것을 금지합니다.
no-underscore-dangle식별자 앞뒤의 밑줄 사용을 금지합니다.
no-unneeded-ternary더 단순하게 표현할 수 있는 삼항 연산자를 금지합니다.
no-unused-expressions결과가 사용되지 않는 표현식을 금지합니다.
no-unused-labels사용하지 않는 라벨을 금지합니다.
no-useless-call불필요한 .call(), .apply() 호출을 금지합니다.
no-useless-catch다시 던지기만 하는 불필요한 catch 절을 금지합니다.
no-useless-computed-key객체와 클래스에서 불필요한 computed key를 금지합니다.
no-useless-concat리터럴이나 템플릿 리터럴의 불필요한 연결을 금지합니다.
no-useless-constructor불필요한 생성자를 금지합니다.
no-useless-escape불필요한 escape 문자를 금지합니다.
no-useless-renameimport, export, 구조 분해에서 같은 이름으로 다시 이름 붙이는 것을 금지합니다.
no-useless-return불필요한 return 문을 금지합니다.
no-varvar 대신 let 또는 const 사용을 요구합니다.
no-voidvoid 연산자 사용을 금지합니다.
no-warning-comments주석 안의 지정된 경고 용어 사용을 금지합니다.
no-withwith 문 사용을 금지합니다.
object-shorthand객체 리터럴의 메서드와 속성 축약 문법 사용 여부를 강제합니다.
one-var변수 선언을 하나로 모으거나 분리하는 스타일을 강제합니다.
operator-assignment가능한 경우 축약 대입 연산자 사용 여부를 강제합니다.
prefer-arrow-callback콜백에 화살표 함수 사용을 요구합니다.
prefer-const재할당되지 않는 변수에 const 사용을 요구합니다.
prefer-destructuring배열 또는 객체에서 구조 분해 사용을 요구합니다.
prefer-exponentiation-operatorMath.pow 대신 ** 연산자 사용을 요구합니다.
prefer-named-capture-group정규식에서 이름 있는 캡처 그룹 사용을 요구합니다.
prefer-numeric-literalsparseInt() 대신 2진수, 8진수, 16진수 리터럴 사용을 요구합니다.
prefer-object-has-ownObject.prototype.hasOwnProperty.call() 대신 Object.hasOwn() 사용을 요구합니다.
prefer-object-spreadObject.assign() 대신 객체 spread 사용을 권장합니다.
prefer-promise-reject-errorsPromise reject 이유로 Error 객체 사용을 요구합니다.
prefer-regex-literalsRegExp 생성자 대신 정규식 리터럴 사용을 요구합니다.
prefer-rest-paramsarguments 대신 rest parameter 사용을 요구합니다.
prefer-spread.apply() 대신 spread 연산자 사용을 요구합니다.
prefer-template문자열 연결 대신 템플릿 리터럴 사용을 요구합니다.
preserve-caught-error커스텀 에러를 다시 던질 때 원래 잡힌 에러를 잃지 않도록 합니다.
radixparseInt() 사용 시 진법 인자를 명시하도록 강제합니다.
require-awaitawait가 없는 async 함수를 금지합니다.
require-unicode-regexp정규식에 u 또는 v 플래그 사용을 요구합니다.
require-yieldgenerator 함수에 yield가 포함되도록 요구합니다.
sort-imports모듈 import 선언 정렬을 강제합니다.
sort-keys객체 키 정렬을 요구합니다.
sort-vars같은 선언 블록의 변수 정렬을 요구합니다.
strictstrict mode 지시문 사용 여부를 강제합니다.
symbol-descriptionSymbol 생성 시 설명을 요구합니다.
vars-on-topvar 선언을 해당 스코프 맨 위에 두도록 요구합니다.
yodaYoda 조건 사용 여부를 강제합니다.

Layout & Formatting

규칙설명
unicode-bom파일의 Unicode BOM 사용 여부를 강제합니다.