Skip to content

typescript-eslint

INFO

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

기준일: 2026-04-29
기준 버전: typescript-eslint@8.59.1
출처: typescript-eslint Rules, typescript-eslint package

규칙 목록

규칙설명
adjacent-overload-signatures함수 overload 시그니처가 서로 붙어 있도록 강제합니다.
array-type배열 타입을 T[] 또는 Array<T> 중 하나로 일관되게 쓰도록 합니다.
await-thenablethenable이 아닌 값에 await를 사용하는 실수를 금지합니다.
ban-ts-comment@ts-ignore 같은 TypeScript 지시 주석 사용을 제한하거나 설명을 요구합니다.
ban-tslint-comment더 이상 사용하지 않는 tslint 제어 주석을 금지합니다.
class-literal-property-style클래스의 리터럴 속성을 readonly field 또는 getter 중 지정한 방식으로 통일합니다.
class-methods-use-this클래스 메서드가 this를 사용하도록 요구합니다.
consistent-generic-constructors생성자 호출의 generic 인자 표기 위치를 일관되게 합니다.
consistent-indexed-object-styleindex signature와 Record 타입 중 하나의 스타일을 강제합니다.
consistent-return함수의 반환값 존재 여부가 모든 경로에서 일관되도록 합니다.
consistent-type-assertions타입 단언을 as 또는 angle bracket 방식 중 하나로 통일합니다.
consistent-type-definitions객체 타입 정의를 interface 또는 type 중 하나로 통일합니다.
consistent-type-exportstype export 표기 방식을 일관되게 합니다.
consistent-type-importstype import를 일반 import와 분리하거나 inline으로 일관되게 작성하도록 합니다.
default-param-last기본값이 있는 매개변수를 매개변수 목록 뒤쪽에 두도록 합니다.
dot-notation가능한 경우 대괄호 접근 대신 점 표기법을 사용하도록 합니다.
explicit-function-return-type함수와 클래스 메서드에 명시적인 반환 타입을 요구합니다.
explicit-member-accessibility클래스 멤버에 public, private, protected 접근 제한자를 명시하도록 합니다.
explicit-module-boundary-types모듈 경계의 함수와 클래스 public 메서드에 타입 명시를 요구합니다.
init-declarations변수 선언 시 초기화 여부를 강제합니다.
max-params함수 매개변수 개수의 최대값을 제한합니다.
member-ordering클래스, 인터페이스, 타입 멤버의 선언 순서를 강제합니다.
method-signature-style인터페이스와 타입의 메서드 시그니처 표기 방식을 통일합니다.
naming-convention변수, 타입, 클래스 등 식별자 이름 규칙을 세밀하게 강제합니다.
no-array-constructor제네릭 Array 생성자 사용을 금지합니다.
no-array-delete배열 요소에 delete 연산자를 사용하는 실수를 금지합니다.
no-base-to-string의미 없는 문자열화를 만드는 .toString() 호출을 제한합니다.
no-confusing-non-null-assertion헷갈리기 쉬운 위치의 non-null assertion을 금지합니다.
no-confusing-void-expressionvoid 타입 표현식이 값처럼 사용되는 패턴을 제한합니다.
no-deprecated@deprecated로 표시된 API 사용을 금지합니다.
no-dupe-class-members클래스 멤버 이름 중복을 금지합니다.
no-duplicate-enum-valuesenum 멤버 값 중복을 금지합니다.
no-duplicate-type-constituentsunion 또는 intersection 타입의 중복 구성 요소를 금지합니다.
no-dynamic-deletecomputed key에 delete 연산자를 사용하는 패턴을 제한합니다.
no-empty-function빈 함수를 금지합니다.
no-empty-interface빈 interface 선언을 금지합니다.
no-empty-object-type의도와 다르게 너무 넓은 빈 객체 타입을 사용하는 것을 방지합니다.
no-explicit-any명시적인 any 타입 사용을 금지합니다.
no-extra-non-null-assertion중복된 non-null assertion을 금지합니다.
no-extraneous-classnamespace처럼만 쓰이는 불필요한 클래스를 금지합니다.
no-floating-promises처리되지 않은 Promise를 금지합니다.
no-for-in-array배열에 for-in 루프를 사용하는 실수를 금지합니다.
no-implied-evaleval()처럼 동작할 수 있는 함수 사용을 금지합니다.
no-import-type-side-effects타입 전용 import가 런타임 side effect import로 남는 패턴을 방지합니다.
no-inferrable-types쉽게 추론 가능한 원시 타입 명시를 금지합니다.
no-invalid-this유효하지 않은 문맥에서 this를 사용하는 것을 금지합니다.
no-invalid-void-typegeneric 또는 반환 타입 외 위치에서 void 타입 사용을 제한합니다.
no-loop-func루프 안에서 안전하지 않은 참조를 캡처하는 함수 선언을 금지합니다.
no-loss-of-precision정밀도를 잃는 숫자 리터럴을 금지합니다.
no-magic-numbers의미를 알기 어려운 숫자 리터럴 사용을 제한합니다.
no-meaningless-void-operator의미 없는 void 연산자 사용을 금지합니다.
no-misused-newnewconstructor 시그니처의 잘못된 선언을 금지합니다.
no-misused-promisesPromise를 처리할 수 없는 위치에 Promise를 넘기는 실수를 금지합니다.
no-misused-spread예상과 다르게 동작할 수 있는 spread 사용을 금지합니다.
no-mixed-enumsenum 안에서 문자열 멤버와 숫자 멤버를 섞는 것을 금지합니다.
no-namespaceTypeScript namespace 사용을 금지합니다.
no-non-null-asserted-nullish-coalescingnullish coalescing 왼쪽에 non-null assertion을 붙이는 무의미한 패턴을 금지합니다.
no-non-null-asserted-optional-chainoptional chain 뒤의 non-null assertion을 금지합니다.
no-non-null-assertionpostfix ! non-null assertion 사용을 금지합니다.
no-redeclare같은 스코프의 재선언을 금지합니다.
no-redundant-type-constituents타입 정보를 덮어쓰거나 의미 없는 union/intersection 구성 요소를 금지합니다.
no-require-importsrequire() 호출을 금지하고 ESM import를 사용하도록 합니다.
no-restricted-imports지정한 모듈 import를 금지합니다.
no-restricted-types지정한 타입 사용을 금지합니다.
no-shadow바깥 스코프 변수와 같은 이름의 선언을 금지합니다.
no-this-aliasthis를 다른 변수에 할당해 별칭을 만드는 패턴을 금지합니다.
no-type-aliastype alias 사용을 제한합니다.
no-unnecessary-boolean-literal-compareboolean 리터럴과의 불필요한 비교를 금지합니다.
no-unnecessary-condition타입상 항상 참 또는 거짓인 조건문을 금지합니다.
no-unnecessary-parameter-property-assignment생성자 parameter property에 다시 같은 값을 할당하는 코드를 금지합니다.
no-unnecessary-qualifier불필요한 namespace 또는 enum qualifier를 금지합니다.
no-unnecessary-template-expression단순 값 하나만 감싸는 불필요한 template expression을 금지합니다.
no-unnecessary-type-arguments기본값과 같은 불필요한 generic 타입 인자를 금지합니다.
no-unnecessary-type-assertion타입을 바꾸지 않는 불필요한 타입 단언을 금지합니다.
no-unnecessary-type-constraint의미 없는 generic 제약을 금지합니다.
no-unnecessary-type-conversion타입이나 값이 바뀌지 않는 변환 표현을 금지합니다.
no-unnecessary-type-parameters여러 위치에서 관계를 만들지 않는 불필요한 type parameter를 금지합니다.
no-unsafe-argumentany 값을 함수 인자로 넘기는 것을 금지합니다.
no-unsafe-assignmentany 값을 변수나 속성에 할당하는 것을 금지합니다.
no-unsafe-callany 타입 값을 함수처럼 호출하는 것을 금지합니다.
no-unsafe-declaration-mergingclass와 interface의 위험한 선언 병합을 금지합니다.
no-unsafe-enum-comparisonenum 값과 enum이 아닌 값을 비교하는 것을 금지합니다.
no-unsafe-function-type너무 넓은 내장 Function 타입 사용을 금지합니다.
no-unsafe-member-accessany 값의 멤버 접근을 금지합니다.
no-unsafe-return함수에서 any 값을 반환하는 것을 금지합니다.
no-unsafe-type-assertion타입을 더 좁히는 위험한 타입 단언을 금지합니다.
no-unsafe-unary-minus숫자가 아닌 값에 unary minus를 적용하는 것을 금지합니다.
no-unused-expressions사용되지 않는 표현식을 금지합니다.
no-unused-private-class-members사용하지 않는 private 클래스 멤버를 금지합니다.
no-unused-vars사용하지 않는 변수와 매개변수를 금지합니다.
no-use-before-define선언 전에 변수, 함수, 클래스를 사용하는 것을 제한합니다.
no-useless-constructor불필요한 생성자를 금지합니다.
no-useless-default-assignment실제로 사용될 수 없는 기본값 할당을 금지합니다.
no-useless-empty-export모듈 표식 외 의미가 없는 빈 export를 금지합니다.
no-var-requiresimport 문 대신 require 변수를 사용하는 패턴을 금지합니다.
no-wrapper-object-typesString, Number, Boolean 같은 wrapper object 타입 사용을 금지합니다.
non-nullable-type-assertion-stylenullable 제거에는 타입 단언보다 non-null assertion을 쓰도록 합니다.
only-throw-errorthrow에는 Error 객체만 사용하도록 강제합니다.
parameter-properties생성자 parameter property 사용 여부를 강제합니다.
prefer-as-const리터럴 타입 단언보다 as const 사용을 선호합니다.
prefer-destructuring배열 또는 객체에서 구조 분해 할당 사용을 요구합니다.
prefer-enum-initializersenum 멤버 값을 명시적으로 초기화하도록 요구합니다.
prefer-find단일 요소를 찾을 때 filter()[0]보다 find()를 사용하도록 합니다.
prefer-for-ofindex가 필요 없는 표준 for 루프 대신 for-of 사용을 권장합니다.
prefer-function-typecall signature만 있는 interface보다 function type을 사용하도록 합니다.
prefer-includesindexOf 비교 대신 includes() 사용을 권장합니다.
prefer-literal-enum-memberenum 멤버가 리터럴 값이 되도록 요구합니다.
prefer-namespace-keyword커스텀 TypeScript 모듈 선언에 module 대신 namespace를 사용하도록 합니다.
prefer-nullish-coalescing|| 등보다 nullish coalescing을 사용하도록 권장합니다.
prefer-optional-chain연쇄 논리식 대신 optional chaining을 사용하도록 합니다.
prefer-promise-reject-errorsPromise reject 이유로 Error 객체를 사용하도록 합니다.
prefer-readonly생성자 밖에서 변경되지 않는 private 멤버에 readonly를 붙이도록 합니다.
prefer-readonly-parameter-types함수 매개변수를 readonly 타입으로 받도록 요구합니다.
prefer-reduce-type-parameterreduce 결과 타입을 타입 단언보다 generic 인자로 지정하도록 합니다.
prefer-regexp-execglobal flag가 없는 정규식 검사에 String#match보다 RegExp#exec를 사용하도록 합니다.
prefer-return-this-type반환 타입이 현재 인스턴스라면 클래스명보다 this 타입을 사용하도록 합니다.
prefer-string-starts-ends-with문자열 접두사/접미사 확인에 startsWith()endsWith()를 사용하도록 합니다.
prefer-ts-expect-error@ts-ignore보다 검증 가능한 @ts-expect-error 사용을 권장합니다.
promise-function-asyncPromise를 반환하는 함수에 async 표시를 요구합니다.
related-getter-setter-pairsgetter 반환 타입과 setter 입력 타입이 서로 호환되도록 합니다.
require-array-sort-comparesort()toSorted() 호출에 비교 함수를 요구합니다.
require-awaitawait가 없고 Promise도 반환하지 않는 async 함수를 금지합니다.
restrict-plus-operands+ 연산자의 양쪽 피연산자 타입을 안전하게 제한합니다.
restrict-template-expressionstemplate literal에 문자열로 안전하게 변환되는 값만 넣도록 제한합니다.
return-awaitPromise 반환 시 await 사용 방식을 일관되게 합니다.
sort-type-constituentsunion과 intersection 구성 요소를 정렬하도록 합니다.
strict-boolean-expressions조건식에 boolean으로 안전하게 판단되는 값만 사용하도록 제한합니다.
strict-void-return값을 반환하는 함수를 void 반환 위치에 넘기는 것을 금지합니다.
switch-exhaustiveness-checkunion 또는 enum에 대한 switch가 모든 경우를 처리하도록 검사합니다.
triple-slash-referencetriple-slash directive 사용을 제한하고 import 사용을 권장합니다.
typedef지정한 위치에 타입 어노테이션을 요구합니다.
unbound-method메서드를 this 바인딩 없이 분리해 호출하는 실수를 금지합니다.
unified-signatures하나로 합칠 수 있는 overload 시그니처를 금지합니다.
use-unknown-in-catch-callback-variablePromise rejection callback 인자를 unknown으로 다루도록 합니다.