@typescript-eslint/adjacent-overload-signatures | Require that member overloads be consecutive | :white_check_mark: | | |
@typescript-eslint/array-type | Require using either T[] or Array<T> for arrays | :lock: | :wrench: | |
@typescript-eslint/await-thenable | Disallow awaiting a value that is not a Thenable | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/ban-ts-comment | Disallow @ts-<directive> comments or require descriptions after directive | :white_check_mark: | | |
@typescript-eslint/ban-tslint-comment | Disallow // tslint:<rule-flag> comments | :lock: | :wrench: | |
@typescript-eslint/ban-types | Disallow certain types | :white_check_mark: | :wrench: | |
@typescript-eslint/class-literal-property-style | Enforce that literals on classes are exposed in a consistent style | :lock: | :wrench: | |
@typescript-eslint/consistent-generic-constructors | Enforce specifying generic type arguments on type annotation or constructor name of a constructor call | :lock: | :wrench: | |
@typescript-eslint/consistent-indexed-object-style | Require or disallow the Record type | :lock: | :wrench: | |
@typescript-eslint/consistent-type-assertions | Enforce consistent usage of type assertions | :lock: | | |
@typescript-eslint/consistent-type-definitions | Enforce type definitions to consistently use either interface or type | :lock: | :wrench: | |
@typescript-eslint/consistent-type-exports | Enforce consistent usage of type exports | | :wrench: | :thought_balloon: |
@typescript-eslint/consistent-type-imports | Enforce consistent usage of type imports | | :wrench: | |
@typescript-eslint/explicit-function-return-type | Require explicit return types on functions and class methods | | | |
@typescript-eslint/explicit-member-accessibility | Require explicit accessibility modifiers on class properties and methods | | :wrench: | |
@typescript-eslint/explicit-module-boundary-types | Require explicit return and argument types on exported functions' and classes' public class methods | | | |
@typescript-eslint/member-delimiter-style | Require a specific member delimiter style for interfaces and type literals | | :wrench: | |
@typescript-eslint/member-ordering | Require a consistent member declaration order | | | |
@typescript-eslint/method-signature-style | Enforce using a particular method signature syntax | | :wrench: | |
@typescript-eslint/naming-convention | Enforce naming conventions for everything across a codebase | | | :thought_balloon: |
@typescript-eslint/no-base-to-string | Require .toString() to only be called on objects which provide useful information when stringified | :lock: | | :thought_balloon: |
@typescript-eslint/no-confusing-non-null-assertion | Disallow non-null assertion in locations that may be confusing | :lock: | :wrench: | |
@typescript-eslint/no-confusing-void-expression | Require expressions of type void to appear in statement position | | :wrench: | :thought_balloon: |
@typescript-eslint/no-duplicate-enum-values | Disallow duplicate enum member values | :lock: | | |
@typescript-eslint/no-dynamic-delete | Disallow using the delete operator on computed key expressions | :lock: | :wrench: | |
@typescript-eslint/no-empty-interface | Disallow the declaration of empty interfaces | :white_check_mark: | :wrench: | |
@typescript-eslint/no-explicit-any | Disallow the any type | :white_check_mark: | :wrench: | |
@typescript-eslint/no-extra-non-null-assertion | Disallow extra non-null assertion | :white_check_mark: | :wrench: | |
@typescript-eslint/no-extraneous-class | Disallow classes used as namespaces | :lock: | | |
@typescript-eslint/no-floating-promises | Require Promise-like statements to be handled appropriately | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-for-in-array | Disallow iterating over an array with a for-in loop | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-inferrable-types | Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean | :white_check_mark: | :wrench: | |
@typescript-eslint/no-invalid-void-type | Disallow void type outside of generic or return types | :lock: | | |
@typescript-eslint/no-meaningless-void-operator | Disallow the void operator except when used to discard a value | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/no-misused-new | Enforce valid definition of new and constructor | :white_check_mark: | | |
@typescript-eslint/no-misused-promises | Disallow Promises in places not designed to handle them | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-namespace | Disallow custom TypeScript modules and namespaces | :white_check_mark: | | |
@typescript-eslint/no-non-null-asserted-nullish-coalescing | Disallow non-null assertions in the left operand of a nullish coalescing operator | :lock: | | |
@typescript-eslint/no-non-null-asserted-optional-chain | Disallow non-null assertions after an optional chain expression | :white_check_mark: | | |
@typescript-eslint/no-non-null-assertion | Disallow non-null assertions using the ! postfix operator | :white_check_mark: | | |
@typescript-eslint/no-redundant-type-constituents | Disallow members of unions and intersections that do nothing or override type information | | | :thought_balloon: |
@typescript-eslint/no-require-imports | Disallow invocation of require() | | | |
@typescript-eslint/no-this-alias | Disallow aliasing this | :white_check_mark: | | |
@typescript-eslint/no-type-alias | Disallow type aliases | | | |
@typescript-eslint/no-unnecessary-boolean-literal-compare | Disallow unnecessary equality comparisons against boolean literals | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/no-unnecessary-condition | Disallow conditionals where the type is always truthy or always falsy | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/no-unnecessary-qualifier | Disallow unnecessary namespace qualifiers | | :wrench: | :thought_balloon: |
@typescript-eslint/no-unnecessary-type-arguments | Disallow type arguments that are equal to the default | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/no-unnecessary-type-assertion | Disallow type assertions that do not change the type of an expression | :white_check_mark: | :wrench: | :thought_balloon: |
@typescript-eslint/no-unnecessary-type-constraint | Disallow unnecessary constraints on generic types | :white_check_mark: | | |
@typescript-eslint/no-unsafe-argument | Disallow calling a function with a value with type any | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-unsafe-assignment | Disallow assigning a value with type any to variables and properties | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-unsafe-call | Disallow calling a value with type any | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-unsafe-member-access | Disallow member access on a value with type any | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-unsafe-return | Disallow returning a value with type any from a function | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/no-useless-empty-export | Disallow empty exports that don't change anything in a module file | | :wrench: | |
@typescript-eslint/no-var-requires | Disallow require statements except in import statements | :white_check_mark: | | |
@typescript-eslint/non-nullable-type-assertion-style | Enforce non-null assertions over explicit type casts | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/parameter-properties | Require or disallow parameter properties in class constructors | | | |
@typescript-eslint/prefer-as-const | Enforce the use of as const over literal type | :white_check_mark: | :wrench: | |
@typescript-eslint/prefer-enum-initializers | Require each enum member value to be explicitly initialized | | | |
@typescript-eslint/prefer-for-of | Enforce the use of for-of loop over the standard for loop where possible | :lock: | | |
@typescript-eslint/prefer-function-type | Enforce using function types instead of interfaces with call signatures | :lock: | :wrench: | |
@typescript-eslint/prefer-includes | Enforce includes method over indexOf method | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/prefer-literal-enum-member | Require all enum members to be literal values | :lock: | | |
@typescript-eslint/prefer-namespace-keyword | Require using namespace keyword over module keyword to declare custom TypeScript modules | :white_check_mark: | :wrench: | |
@typescript-eslint/prefer-nullish-coalescing | Enforce using the nullish coalescing operator instead of logical chaining | :lock: | | :thought_balloon: |
@typescript-eslint/prefer-optional-chain | Enforce using concise optional chain expressions instead of chained logical ands | :lock: | | |
@typescript-eslint/prefer-readonly | Require private members to be marked as readonly if they're never modified outside of the constructor | | :wrench: | :thought_balloon: |
@typescript-eslint/prefer-readonly-parameter-types | Require function parameters to be typed as readonly to prevent accidental mutation of inputs | | | :thought_balloon: |
@typescript-eslint/prefer-reduce-type-parameter | Enforce using type parameter when calling Array#reduce instead of casting | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/prefer-regexp-exec | Enforce RegExp#exec over String#match if no global flag is provided | | :wrench: | :thought_balloon: |
@typescript-eslint/prefer-return-this-type | Enforce that this is used when only this type is returned | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/prefer-string-starts-ends-with | Enforce using String#startsWith and String#endsWith over other equivalent methods of checking substrings | :lock: | :wrench: | :thought_balloon: |
@typescript-eslint/prefer-ts-expect-error | Enforce using @ts-expect-error over @ts-ignore | :lock: | :wrench: | |
@typescript-eslint/promise-function-async | Require any function or method that returns a Promise to be marked async | | :wrench: | :thought_balloon: |
@typescript-eslint/require-array-sort-compare | Require Array#sort calls to always provide a compareFunction | | | :thought_balloon: |
@typescript-eslint/restrict-plus-operands | Require both operands of addition to have type number or string | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/restrict-template-expressions | Enforce template literal expressions to be of string type | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/sort-type-union-intersection-members | Enforce members of a type union/intersection to be sorted alphabetically | | :wrench: | |
@typescript-eslint/strict-boolean-expressions | Disallow certain types in boolean expressions | | :wrench: | :thought_balloon: |
@typescript-eslint/switch-exhaustiveness-check | Require switch-case statements to be exhaustive with union type | | | :thought_balloon: |
@typescript-eslint/triple-slash-reference | Disallow certain triple slash directives in favor of ES6-style import declarations | :white_check_mark: | | |
@typescript-eslint/type-annotation-spacing | Require consistent spacing around type annotations | | :wrench: | |
@typescript-eslint/typedef | Require type annotations in certain places | | | |
@typescript-eslint/unbound-method | Enforce unbound methods are called with their expected scope | :white_check_mark: | | :thought_balloon: |
@typescript-eslint/unified-signatures | Disallow two overloads that could be unified into one with a union or an optional/rest parameter | :lock: | | |