@typescript-eslint
@typescript-eslint/adjacent-overload-signatures docs
Require that function overload signatures be consecutive
Configured in
@typescript-eslint/array-type docs
Require consistently using either T[]
or Array<T>
for arrays
Not configured in any preset
@typescript-eslint/await-thenable docs
Disallow awaiting a value that is not a Thenable
@typescript-eslint/ban-ts-comment docs
Disallow @ts-<directive>
comments or require descriptions after directives
Configured in
@typescript-eslint/ban-tslint-comment docs
Disallow // tslint:<rule-flag>
comments
Not configured in any preset
@typescript-eslint/ban-types docs
Disallow certain types
Not configured in any preset
@typescript-eslint/block-spacing docs
Disallow or enforce spaces inside of blocks after opening block and before closing block
Configured in
@typescript-eslint/brace-style docs
Enforce consistent brace style for blocks
Configured in
@typescript-eslint/class-literal-property-style docs
Enforce that literals on classes are exposed in a consistent style
Not configured in any preset
@typescript-eslint/comma-spacing docs
Enforce consistent spacing before and after commas
Configured in
@typescript-eslint/consistent-generic-constructors docs
Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
Not configured in any preset
@typescript-eslint/consistent-indexed-object-style docs
Require or disallow the Record
type
Not configured in any preset
@typescript-eslint/consistent-type-assertions docs
Enforce consistent usage of type assertions
Not configured in any preset
@typescript-eslint/consistent-type-definitions docs
Enforce type definitions to consistently use either interface
or type
Not configured in any preset
@typescript-eslint/consistent-type-exports docs
Enforce consistent usage of type exports
Configured in
@typescript-eslint/consistent-type-imports docs
Enforce consistent usage of type imports
Configured in
@typescript-eslint/default-param-last docs
Enforce default parameters to be last
Not configured in any preset
@typescript-eslint/dot-notation docs
Enforce dot notation whenever possible
Not configured in any preset
@typescript-eslint/explicit-function-return-type docs
Require explicit return types on functions and class methods
Not configured in any preset
@typescript-eslint/explicit-member-accessibility docs
Require explicit accessibility modifiers on class properties and methods
Not configured in any preset
@typescript-eslint/explicit-module-boundary-types docs
Require explicit return and argument types on exported functions' and classes' public class methods
Not configured in any preset
@typescript-eslint/func-call-spacing docs
Require or disallow spacing between function identifiers and their invocations
Configured in
@typescript-eslint/init-declarations docs
Require or disallow initialization in variable declarations
Not configured in any preset
@typescript-eslint/key-spacing docs
Enforce consistent spacing between property names and type annotations in types and interfaces
Configured in
@typescript-eslint/keyword-spacing docs
Enforce consistent spacing before and after keywords
Configured in
@typescript-eslint/lines-around-comment docs
Require empty lines around comments
Configured in
@typescript-eslint/lines-between-class-members docs
Require or disallow an empty line between class members
Not configured in any preset
@typescript-eslint/member-delimiter-style docs
Require a specific member delimiter style for interfaces and type literals
Configured in
@typescript-eslint/member-ordering docs
Require a consistent member declaration order
Not configured in any preset
@typescript-eslint/method-signature-style docs
Enforce using a particular method signature syntax
Not configured in any preset
@typescript-eslint/naming-convention docs
Enforce naming conventions for everything across a codebase
Not configured in any preset
@typescript-eslint/no-array-constructor docs
Disallow generic Array
constructors
Not configured in any preset
@typescript-eslint/no-base-to-string docs
Require .toString()
to only be called on objects which provide useful information when stringified
Not configured in any preset
@typescript-eslint/no-confusing-non-null-assertion docs
Disallow non-null assertion in locations that may be confusing
Not configured in any preset
@typescript-eslint/no-confusing-void-expression docs
Require expressions of type void to appear in statement position
Not configured in any preset
@typescript-eslint/no-dupe-class-members docs
Disallow duplicate class members
@typescript-eslint/no-duplicate-enum-values docs
Disallow duplicate enum member values
@typescript-eslint/no-duplicate-imports docs
Disallow duplicate imports
Not configured in any preset
@typescript-eslint/no-duplicate-type-constituents docs
Disallow duplicate constituents of union or intersection types
Configured in
@typescript-eslint/no-dynamic-delete docs
Disallow using the delete
operator on computed key expressions
Not configured in any preset
@typescript-eslint/no-empty-function docs
Disallow empty functions
Configured in
@typescript-eslint/no-empty-interface docs
Disallow the declaration of empty interfaces
Not configured in any preset
@typescript-eslint/no-explicit-any docs
Disallow the any
type
Not configured in any preset
@typescript-eslint/no-extra-non-null-assertion docs
Disallow extra non-null assertions
Configured in
@typescript-eslint/no-extraneous-class docs
Disallow classes used as namespaces
Not configured in any preset
@typescript-eslint/no-floating-promises docs
Require Promise-like statements to be handled appropriately
@typescript-eslint/no-for-in-array docs
Disallow iterating over an array with a for-in loop
@typescript-eslint/no-implicit-any-catch docs
Disallow usage of the implicit any
type in catch clauses
Not configured in any preset
@typescript-eslint/no-implied-eval docs
Disallow the use of eval()
-like methods
Configured in
@typescript-eslint/no-import-type-side-effects docs
Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers
Not configured in any preset
@typescript-eslint/no-inferrable-types docs
Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean
Configured in
@typescript-eslint/no-invalid-this docs
Disallow this
keywords outside of classes or class-like objects
@typescript-eslint/no-invalid-void-type docs
Disallow void
type outside of generic or return types
Not configured in any preset
@typescript-eslint/no-loop-func docs
Disallow function declarations that contain unsafe references inside loop statements
Not configured in any preset
@typescript-eslint/no-loss-of-precision docs
Disallow literal numbers that lose precision
@typescript-eslint/no-magic-numbers docs
Disallow magic numbers
Not configured in any preset
@typescript-eslint/no-meaningless-void-operator docs
Disallow the void
operator except when used to discard a value
Not configured in any preset
@typescript-eslint/no-misused-new docs
Enforce valid definition of new
and constructor
Not configured in any preset
@typescript-eslint/no-misused-promises docs
Disallow Promises in places not designed to handle them
@typescript-eslint/no-mixed-enums docs
Disallow enums from having both number and string members
Not configured in any preset
@typescript-eslint/no-non-null-asserted-nullish-coalescing docs
Disallow non-null assertions in the left operand of a nullish coalescing operator
Configured in
@typescript-eslint/no-non-null-asserted-optional-chain docs
Disallow non-null assertions after an optional chain expression
Configured in
@typescript-eslint/no-non-null-assertion docs
Disallow non-null assertions using the !
postfix operator
Not configured in any preset
@typescript-eslint/no-parameter-properties docs
Disallow the use of parameter properties in class constructors
Not configured in any preset
@typescript-eslint/no-redeclare docs
Disallow variable redeclaration
Not configured in any preset
@typescript-eslint/no-redundant-type-constituents docs
Disallow members of unions and intersections that do nothing or override type information
Configured in
@typescript-eslint/no-require-imports docs
Disallow invocation of require()
Not configured in any preset
@typescript-eslint/no-restricted-imports docs
Disallow specified modules when loaded by import
Not configured in any preset
@typescript-eslint/no-shadow docs
Disallow variable declarations from shadowing variables declared in the outer scope
Not configured in any preset
@typescript-eslint/no-this-alias docs
Disallow aliasing this
Not configured in any preset
@typescript-eslint/no-throw-literal docs
Disallow throwing literals as exceptions
Configured in
@typescript-eslint/no-type-alias docs
Disallow type aliases
Not configured in any preset
@typescript-eslint/no-unnecessary-boolean-literal-compare docs
Disallow unnecessary equality comparisons against boolean literals
Not configured in any preset
@typescript-eslint/no-unnecessary-condition docs
Disallow conditionals where the type is always truthy or always falsy
@typescript-eslint/no-unnecessary-qualifier docs
Disallow unnecessary namespace qualifiers
Not configured in any preset
@typescript-eslint/no-unnecessary-type-arguments docs
Disallow type arguments that are equal to the default
Configured in
@typescript-eslint/no-unnecessary-type-assertion docs
Disallow type assertions that do not change the type of an expression
Configured in
@typescript-eslint/no-unnecessary-type-constraint docs
Disallow unnecessary constraints on generic types
@typescript-eslint/no-unsafe-argument docs
Disallow calling a function with a value with type any
@typescript-eslint/no-unsafe-assignment docs
Disallow assigning a value with type any
to variables and properties
@typescript-eslint/no-unsafe-call docs
Disallow calling a value with type any
@typescript-eslint/no-unsafe-declaration-merging docs
Disallow unsafe declaration merging
@typescript-eslint/no-unsafe-enum-comparison docs
Disallow comparing an enum value with a non-enum value
Not configured in any preset
@typescript-eslint/no-unsafe-member-access docs
Disallow member access on a value with type any
@typescript-eslint/no-unsafe-return docs
Disallow returning a value with type any
from a function
@typescript-eslint/no-unused-expressions docs
Disallow unused expressions
Configured in
@typescript-eslint/no-unused-vars docs
Disallow unused variables
Configured in
@typescript-eslint/no-use-before-define docs
Disallow the use of variables before they are defined
Configured in
@typescript-eslint/no-useless-constructor docs
Disallow unnecessary constructors
Not configured in any preset
@typescript-eslint/no-useless-empty-export docs
Disallow empty exports that don't change anything in a module file
Not configured in any preset
@typescript-eslint/no-var-requires docs
Disallow require
statements except in import statements
Not configured in any preset
@typescript-eslint/non-nullable-type-assertion-style docs
Enforce non-null assertions over explicit type casts
Configured in
@typescript-eslint/object-curly-spacing docs
Enforce consistent spacing inside braces
Configured in
@typescript-eslint/padding-line-between-statements docs
Require or disallow padding lines between statements
Not configured in any preset
@typescript-eslint/parameter-properties docs
Require or disallow parameter properties in class constructors
Not configured in any preset
@typescript-eslint/prefer-as-const docs
Enforce the use of as const
over literal type
Configured in
@typescript-eslint/prefer-enum-initializers docs
Require each enum member value to be explicitly initialized
Not configured in any preset
@typescript-eslint/prefer-for-of docs
Enforce the use of for-of
loop over the standard for
loop where possible
Not configured in any preset
@typescript-eslint/prefer-function-type docs
Enforce using function types instead of interfaces with call signatures
Not configured in any preset
@typescript-eslint/prefer-includes docs
Enforce includes
method over indexOf
method
Not configured in any preset
@typescript-eslint/prefer-literal-enum-member docs
Require all enum members to be literal values
Not configured in any preset
@typescript-eslint/prefer-namespace-keyword docs
Require using namespace
keyword over module
keyword to declare custom TypeScript modules
Configured in
@typescript-eslint/prefer-nullish-coalescing docs
Enforce using the nullish coalescing operator instead of logical chaining
Not configured in any preset
@typescript-eslint/prefer-optional-chain docs
Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects
Configured in
@typescript-eslint/prefer-readonly docs
Require private members to be marked as readonly
if they're never modified outside of the constructor
Not configured in any preset
@typescript-eslint/prefer-readonly-parameter-types docs
Require function parameters to be typed as readonly
to prevent accidental mutation of inputs
Not configured in any preset
@typescript-eslint/prefer-reduce-type-parameter docs
Enforce using type parameter when calling Array#reduce
instead of casting
Not configured in any preset
@typescript-eslint/prefer-regexp-exec docs
Enforce RegExp#exec
over String#match
if no global flag is provided
Not configured in any preset
@typescript-eslint/prefer-return-this-type docs
Enforce that this
is used when only this
type is returned
Not configured in any preset
@typescript-eslint/prefer-string-starts-ends-with docs
Enforce using String#startsWith
and String#endsWith
over other equivalent methods of checking substrings
Not configured in any preset
@typescript-eslint/prefer-ts-expect-error docs
Enforce using @ts-expect-error
over @ts-ignore
Configured in
@typescript-eslint/promise-function-async docs
Require any function or method that returns a Promise to be marked async
Not configured in any preset
@typescript-eslint/quotes docs
Enforce the consistent use of either backticks, double, or single quotes
Configured in
@typescript-eslint/require-array-sort-compare docs
Require Array#sort
calls to always provide a compareFunction
Not configured in any preset
@typescript-eslint/require-await docs
Disallow async functions which have no await
expression
Not configured in any preset
@typescript-eslint/restrict-plus-operands docs
Require both operands of addition to be the same type and be bigint
, number
, or string
Not configured in any preset
@typescript-eslint/restrict-template-expressions docs
Enforce template literal expressions to be of string
type
Not configured in any preset
@typescript-eslint/return-await docs
Enforce consistent returning of awaited values
Not configured in any preset
@typescript-eslint/sort-type-constituents docs
Enforce constituents of a type union/intersection to be sorted alphabetically
Not configured in any preset
@typescript-eslint/sort-type-union-intersection-members docs
Enforce members of a type union/intersection to be sorted alphabetically
Not configured in any preset
@typescript-eslint/space-before-blocks docs
Enforce consistent spacing before blocks
Configured in
@typescript-eslint/space-before-function-paren docs
Enforce consistent spacing before function parenthesis
Configured in
@typescript-eslint/space-infix-ops docs
Require spacing around infix operators
Configured in
@typescript-eslint/strict-boolean-expressions docs
Disallow certain types in boolean expressions
Not configured in any preset
@typescript-eslint/switch-exhaustiveness-check docs
Require switch-case statements to be exhaustive with union type
Not configured in any preset
@typescript-eslint/triple-slash-reference docs
Disallow certain triple slash directives in favor of ES6-style import declarations
Not configured in any preset
@typescript-eslint/type-annotation-spacing docs
Require consistent spacing around type annotations
Configured in
@typescript-eslint/typedef docs
Require type annotations in certain places
Not configured in any preset
@typescript-eslint/unbound-method docs
Enforce unbound methods are called with their expected scope
Not configured in any preset
@typescript-eslint/unified-signatures docs
Disallow two overloads that could be unified into one with a union or an optional/rest parameter
Not configured in any preset