Skip to content

Changes to configurations for 6.0.0 #5900

Closed
@JoshuaKGoldberg

Description

@JoshuaKGoldberg

Similar to what @bradzacher did for 5.0.0 (in #3746), I'm going to put forward the new recommended set ahead of time.

I'm looking for feedback from the community before we go ahead and make the changes.

Note 11/14: I'm going to turn this into a discussion later this week, then share around more. 😇

Table Key

Column Description Emojis
Status Being added, deprecated, or removed
  • 🆕 = newly added to TypeScript-ESLint
  • 🙅 = deprecated in the next major
  • ➖️ = to be removed from the plugin in the next version
Ext Extension rule?
  • ☑️ = yes
R Recommended
  • ➕ = add to recommended this version
  • ⚠️ = recommended as warning
  • 🛑 = recommended as an error
  • ➖️ = remove from recommended this version
RWT Recommended-requiring-type-checking
  • ➕ = add to recommended-with-typechecking this version
  • ⚠️ = recommended as warning
  • 🛑 = recommended as an error
  • ➖️ = remove from recommended this version
Strict Strict
  • ➕ = add to strict this version
  • ⚠️ = recommended as warning
  • ➖️ = remove from strict this version

Recommendations Table

Hint: search for 🆕 to find newly added rules, and ➕ or ➖ to see config changes.

Rule Status Ext R RWT Strict Comment
adjacent-overload-signatures 🛑
array-type ⚠️ move to stylistic (#5964)?
await-thenable 🛑 #5946
ban-ts-comment 🛑
ban-tslint-comment ⚠️
ban-types 🛑 #5947
brace-style ☑️ layout 💩
class-literal-property-style ⚠️ move to stylistic (#5964)?
comma-dangle ☑️ layout 💩
comma-spacing ☑️ layout 💩
consistent-generic-constructors 🆕 ⚠️ move to stylistic (#5964)?
consistent-indexed-object-style ⚠️ move to stylistic (#5964)?
consistent-type-assertions ➕🛑 ⚠️
consistent-type-definitions ⚠️ move to stylistic (#5964)?
consistent-type-exports 🆕 too opinionated for any config
consistent-type-imports too opinionated for any config
default-param-last ☑️
dot-notation ☑️ ⚠️ move to stylistic (#5964)?
explicit-function-return-type too opinionated for any config
explicit-member-accessibility too opinionated for any config
explicit-module-boundary-types too opinionated for any config
func-call-spacing ☑️ layout 💩
indent ☑️ layout 💩
init-declarations ☑️
keyword-spacing ☑️ layout 💩
lines-between-class-members ☑️ layout 💩
member-delimiter-style layout 💩
member-ordering too opinionated for any config
method-signature-style too opinionated for any config
naming-convention too opinionated for any config
no-array-constructor ☑️ 🛑
no-base-to-string ➕🛑 ⚠️ required #4999
no-confusing-non-null-assertion ⚠️ move to stylistic (#5964)?
no-confusing-void-expression ⚠️
no-dupe-class-members ☑️
no-duplicate-enum-values 🆕 ➕🛑 ⚠️
no-duplicate-imports 🙅 delete (##5973)?
no-dynamic-delete ⚠️ too opinionated for recommended
no-empty-function ☑️ 🛑 move to stylistic (#5964)?
no-empty-interface 🛑 move to stylistic (#5964)?
no-explicit-any 🛑
no-extra-non-null-assertion 🛑
no-extra-parens ☑️ layout 💩
no-extra-semi ☑️ 🛑 is this layout 💩? move to stylistic (#5964)?
no-extraneous-class ⚠️
no-floating-promises 🛑
no-for-in-array 🛑
no-implicit-any-catch 🆕 delete (##5973)?
no-implied-eval ☑️ 🛑
no-inferrable-types 🛑
no-invalid-this ☑️
no-invalid-void-type ⚠️
no-loop-func ☑️
no-loss-of-precision ☑️ 🛑
no-magic-numbers ☑️
no-meaningless-void-operator ⚠️
no-misused-new 🛑
no-misused-promises 🛑
no-namespace 🛑
no-non-null-asserted-nullish-coalescing ⚠️
no-non-null-asserted-optional-chain 🛑
no-non-null-assertion 🛑 move to strict (#5959)?
no-parameter-properties 🙅 delete (##5973)?
no-redeclare ☑️
no-redundant-type-constituents 🆕 ➕🛑
no-require-imports
no-restricted-imports ☑️
no-shadow ☑️
no-this-alias 🛑
no-throw-literal ☑️ ⚠️
no-type-alias
no-unnecessary-boolean-literal-compare ⚠️
no-unnecessary-condition ⚠️
no-unnecessary-qualifier
no-unnecessary-type-arguments ⚠️
no-unnecessary-type-assertion 🛑
no-unnecessary-type-constraint 🛑
no-unsafe-argument 🛑
no-unsafe-assignment 🛑
no-unsafe-call 🛑
no-unsafe-declaration-merging 🆕 ➕🛑 ⚠️
no-unsafe-member-access 🛑
no-unsafe-return 🛑
no-unused-expressions ☑️
no-unused-vars ☑️ 🛑
no-use-before-define ☑️
no-useless-constructor ☑️ ⚠️
no-useless-empty-export 🆕 ➕🛑
no-var-requires 🛑
non-nullable-type-assertion-style ⚠️
object-curly-spacing ☑️ layout 💩
padding-line-between-statements ☑️ layout 💩
parameter-properties 🆕 too opinionated for any config
prefer-as-const 🛑
prefer-enum-initializers
prefer-for-of ⚠️
prefer-function-type ⚠️
prefer-includes ⚠️
prefer-literal-enum-member ⚠️
prefer-namespace-keyword 🛑
prefer-nullish-coalescing ⚠️ Options: set ignoreTernaryTests to false by default
prefer-optional-chain ⚠️
prefer-readonly
prefer-readonly-parameter-types
prefer-reduce-type-parameter ⚠️
prefer-regexp-exec
prefer-return-this-type ⚠️
prefer-string-starts-ends-with ⚠️
prefer-ts-expect-error ⚠️
promise-function-async
quotes ☑️ layout 💩
require-array-sort-compare
require-await ☑️ 🛑
restrict-plus-operands ➖🛑 ⚠️ too opinionated for recommended
restrict-template-expressions 🛑
return-await ☑️
semi ☑️ layout 💩
sort-type-constituents 🆕 move to stylistic (#5964)?
sort-type-union-intersection-members 🙅 delete (##5973)?
space-before-blocks 🆕 ☑️ layout 💩
space-before-function-paren ☑️ layout 💩
space-infix-ops ☑️ layout 💩
strict-boolean-expressions
switch-exhaustiveness-check
triple-slash-reference 🛑
type-annotation-spacing layout 💩
typedef
unbound-method 🛑
unified-signatures ⚠️

Metadata

Metadata

Labels

breaking changeThis change will require a new major version to be releasedpackage: eslint-pluginIssues related to @typescript-eslint/eslint-pluginrecommended-rulesDiscussion about recommended rule setstriageWaiting for team members to take a look

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions