Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to configurations for 6.0.0 #5900

Closed
JoshuaKGoldberg opened this issue Oct 29, 2022 · 1 comment
Closed

Changes to configurations for 6.0.0 #5900

JoshuaKGoldberg opened this issue Oct 29, 2022 · 1 comment
Assignees
Labels
breaking change This change will require a new major version to be released package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin recommended-rules Discussion about recommended rule sets triage Waiting for maintainers to take a look
Milestone

Comments

@JoshuaKGoldberg
Copy link
Member

JoshuaKGoldberg commented Oct 29, 2022

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 ⚠️
@JoshuaKGoldberg JoshuaKGoldberg added package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin triage Waiting for maintainers to take a look breaking change This change will require a new major version to be released recommended-rules Discussion about recommended rule sets labels Oct 29, 2022
@JoshuaKGoldberg JoshuaKGoldberg self-assigned this Oct 29, 2022
@JoshuaKGoldberg JoshuaKGoldberg added this to the 6.0.0 milestone Oct 30, 2022
@JoshuaKGoldberg JoshuaKGoldberg changed the title Changes to the recommended sets for 6.0.0 Changes to configurations for 6.0.0 Nov 12, 2022
@bradzacher
Copy link
Member

| consistent-type-assertions | R: ➕🛑 |
consistent-type-assertions is a stylistic rule - some rare people would be okay using angle-bracket assertions.
It was removed from the recommended set in v3.0.0 - #1423


| no-duplicate-enum-values | R: ➕🛑 |

I think this is a good style to enforce and most of the time having a duplicate is a bug.
I think explicitly using an eslint-disable to document that the value is intentionally duplicated is a good thing for code quality.


| no-redundant-type-constituents | R: ➕🛑 |

Some codebases do use redundant constituents as a way of documenting possible values.
These usecases are pretty rare though, I think?
So we're probably good to turn this on.
It should catch more errors than it does flag "intentional" redundant code.


| restrict-plus-operands | R: ➖🛑 | too opinionated for recommended |

This rule was explicitly added to the recommended set in v3.0.0 - #1423
Why do you say that it's too opinionated?


👍 LGTM - no comment

➕🛑

  • no-useless-empty-export
  • no-base-to-string
  • no-redundant-type-constituents
  • no-unsafe-declaration-merging

@typescript-eslint typescript-eslint locked and limited conversation to collaborators Nov 17, 2022
@JoshuaKGoldberg JoshuaKGoldberg converted this issue into discussion #6014 Nov 17, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
breaking change This change will require a new major version to be released package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin recommended-rules Discussion about recommended rule sets triage Waiting for maintainers to take a look
Projects
None yet
Development

No branches or pull requests

2 participants