@typescript-eslint/eslint-plugin 7.0.0-alpha.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs/all.js +12 -40
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/base.js +0 -6
- package/dist/configs/base.js.map +1 -1
- package/dist/configs/disable-type-checked.js +7 -1
- package/dist/configs/disable-type-checked.js.map +1 -1
- package/dist/configs/eslint-recommended-raw.js +40 -0
- package/dist/configs/eslint-recommended-raw.js.map +1 -0
- package/dist/configs/eslint-recommended.js +10 -27
- package/dist/configs/eslint-recommended.js.map +1 -1
- package/dist/configs/recommended-type-checked.js.map +1 -1
- package/dist/configs/recommended.js.map +1 -1
- package/dist/configs/strict-type-checked.js +4 -0
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.js.map +1 -1
- package/dist/configs/stylistic-type-checked.js.map +1 -1
- package/dist/configs/stylistic.js.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/rules/adjacent-overload-signatures.js +31 -60
- package/dist/rules/adjacent-overload-signatures.js.map +1 -1
- package/dist/rules/array-type.js +7 -32
- package/dist/rules/array-type.js.map +1 -1
- package/dist/rules/await-thenable.js +15 -4
- package/dist/rules/await-thenable.js.map +1 -1
- package/dist/rules/ban-ts-comment.js +32 -34
- package/dist/rules/ban-ts-comment.js.map +1 -1
- package/dist/rules/ban-tslint-comment.js +5 -29
- package/dist/rules/ban-tslint-comment.js.map +1 -1
- package/dist/rules/ban-types.js +4 -27
- package/dist/rules/ban-types.js.map +1 -1
- package/dist/rules/block-spacing.js +11 -34
- package/dist/rules/block-spacing.js.map +1 -1
- package/dist/rules/brace-style.js +10 -9
- package/dist/rules/brace-style.js.map +1 -1
- package/dist/rules/class-literal-property-style.js +20 -31
- package/dist/rules/class-literal-property-style.js.map +1 -1
- package/dist/rules/class-methods-use-this.js +209 -0
- package/dist/rules/class-methods-use-this.js.map +1 -0
- package/dist/rules/comma-dangle.js +11 -31
- package/dist/rules/comma-dangle.js.map +1 -1
- package/dist/rules/comma-spacing.js +11 -12
- package/dist/rules/comma-spacing.js.map +1 -1
- package/dist/rules/consistent-generic-constructors.js +23 -25
- package/dist/rules/consistent-generic-constructors.js.map +1 -1
- package/dist/rules/consistent-indexed-object-style.js +10 -14
- package/dist/rules/consistent-indexed-object-style.js.map +1 -1
- package/dist/rules/consistent-type-assertions.js +36 -21
- package/dist/rules/consistent-type-assertions.js.map +1 -1
- package/dist/rules/consistent-type-definitions.js +14 -40
- package/dist/rules/consistent-type-definitions.js.map +1 -1
- package/dist/rules/consistent-type-exports.js +19 -39
- package/dist/rules/consistent-type-exports.js.map +1 -1
- package/dist/rules/consistent-type-imports.js +88 -101
- package/dist/rules/consistent-type-imports.js.map +1 -1
- package/dist/rules/default-param-last.js +1 -1
- package/dist/rules/default-param-last.js.map +1 -1
- package/dist/rules/dot-notation.js.map +1 -1
- package/dist/rules/enum-utils/shared.js +57 -6
- package/dist/rules/enum-utils/shared.js.map +1 -1
- package/dist/rules/explicit-function-return-type.js +6 -31
- package/dist/rules/explicit-function-return-type.js.map +1 -1
- package/dist/rules/explicit-member-accessibility.js +8 -32
- package/dist/rules/explicit-member-accessibility.js.map +1 -1
- package/dist/rules/explicit-module-boundary-types.js +11 -35
- package/dist/rules/explicit-module-boundary-types.js.map +1 -1
- package/dist/rules/func-call-spacing.js +12 -35
- package/dist/rules/func-call-spacing.js.map +1 -1
- package/dist/rules/indent.js +18 -42
- package/dist/rules/indent.js.map +1 -1
- package/dist/rules/index.js +16 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/init-declarations.js.map +1 -1
- package/dist/rules/key-spacing.js +27 -59
- package/dist/rules/key-spacing.js.map +1 -1
- package/dist/rules/keyword-spacing.js +9 -31
- package/dist/rules/keyword-spacing.js.map +1 -1
- package/dist/rules/lines-around-comment.js +24 -48
- package/dist/rules/lines-around-comment.js.map +1 -1
- package/dist/rules/lines-between-class-members.js +5 -26
- package/dist/rules/lines-between-class-members.js.map +1 -1
- package/dist/rules/max-params.js +67 -0
- package/dist/rules/max-params.js.map +1 -0
- package/dist/rules/member-delimiter-style.js +12 -34
- package/dist/rules/member-delimiter-style.js.map +1 -1
- package/dist/rules/member-ordering.js +48 -40
- package/dist/rules/member-ordering.js.map +1 -1
- package/dist/rules/method-signature-style.js +14 -38
- package/dist/rules/method-signature-style.js.map +1 -1
- package/dist/rules/naming-convention-utils/enums.js +13 -5
- package/dist/rules/naming-convention-utils/enums.js.map +1 -1
- package/dist/rules/naming-convention-utils/format.js.map +1 -1
- package/dist/rules/naming-convention-utils/parse-options.js +3 -25
- package/dist/rules/naming-convention-utils/parse-options.js.map +1 -1
- package/dist/rules/naming-convention-utils/schema.js +8 -33
- package/dist/rules/naming-convention-utils/schema.js.map +1 -1
- package/dist/rules/naming-convention-utils/validator.js +3 -26
- package/dist/rules/naming-convention-utils/validator.js.map +1 -1
- package/dist/rules/naming-convention.js +59 -60
- package/dist/rules/naming-convention.js.map +1 -1
- package/dist/rules/no-array-constructor.js +4 -27
- package/dist/rules/no-array-constructor.js.map +1 -1
- package/dist/rules/no-array-delete.js +81 -0
- package/dist/rules/no-array-delete.js.map +1 -0
- package/dist/rules/no-base-to-string.js +7 -7
- package/dist/rules/no-base-to-string.js.map +1 -1
- package/dist/rules/no-confusing-non-null-assertion.js +5 -30
- package/dist/rules/no-confusing-non-null-assertion.js.map +1 -1
- package/dist/rules/no-confusing-void-expression.js +33 -20
- package/dist/rules/no-confusing-void-expression.js.map +1 -1
- package/dist/rules/no-dupe-class-members.js +3 -37
- package/dist/rules/no-dupe-class-members.js.map +1 -1
- package/dist/rules/no-duplicate-enum-values.js +2 -25
- package/dist/rules/no-duplicate-enum-values.js.map +1 -1
- package/dist/rules/no-duplicate-type-constituents.js +7 -31
- package/dist/rules/no-duplicate-type-constituents.js.map +1 -1
- package/dist/rules/no-dynamic-delete.js +4 -5
- package/dist/rules/no-dynamic-delete.js.map +1 -1
- package/dist/rules/no-empty-function.js +9 -32
- package/dist/rules/no-empty-function.js.map +1 -1
- package/dist/rules/no-empty-interface.js +8 -33
- package/dist/rules/no-empty-interface.js.map +1 -1
- package/dist/rules/no-explicit-any.js +12 -36
- package/dist/rules/no-explicit-any.js.map +1 -1
- package/dist/rules/no-extra-non-null-assertion.js +2 -25
- package/dist/rules/no-extra-non-null-assertion.js.map +1 -1
- package/dist/rules/no-extra-parens.js +47 -86
- package/dist/rules/no-extra-parens.js.map +1 -1
- package/dist/rules/no-extra-semi.js +5 -37
- package/dist/rules/no-extra-semi.js.map +1 -1
- package/dist/rules/no-extraneous-class.js +2 -25
- package/dist/rules/no-extraneous-class.js.map +1 -1
- package/dist/rules/no-floating-promises.js +137 -54
- package/dist/rules/no-floating-promises.js.map +1 -1
- package/dist/rules/no-for-in-array.js +6 -6
- package/dist/rules/no-for-in-array.js.map +1 -1
- package/dist/rules/no-implied-eval.js +7 -7
- package/dist/rules/no-implied-eval.js.map +1 -1
- package/dist/rules/no-import-type-side-effects.js +4 -28
- package/dist/rules/no-import-type-side-effects.js.map +1 -1
- package/dist/rules/no-inferrable-types.js +12 -36
- package/dist/rules/no-inferrable-types.js.map +1 -1
- package/dist/rules/no-invalid-this.js +2 -10
- package/dist/rules/no-invalid-this.js.map +1 -1
- package/dist/rules/no-invalid-void-type.js +6 -30
- package/dist/rules/no-invalid-void-type.js.map +1 -1
- package/dist/rules/no-loop-func.js +4 -28
- package/dist/rules/no-loop-func.js.map +1 -1
- package/dist/rules/no-loss-of-precision.js +5 -32
- package/dist/rules/no-loss-of-precision.js.map +1 -1
- package/dist/rules/no-magic-numbers.js +5 -28
- package/dist/rules/no-magic-numbers.js.map +1 -1
- package/dist/rules/no-meaningless-void-operator.js +4 -5
- package/dist/rules/no-meaningless-void-operator.js.map +1 -1
- package/dist/rules/no-misused-new.js +2 -25
- package/dist/rules/no-misused-new.js.map +1 -1
- package/dist/rules/no-misused-promises.js +5 -5
- package/dist/rules/no-misused-promises.js.map +1 -1
- package/dist/rules/no-mixed-enums.js +6 -7
- package/dist/rules/no-mixed-enums.js.map +1 -1
- package/dist/rules/no-namespace.js +4 -29
- package/dist/rules/no-namespace.js.map +1 -1
- package/dist/rules/no-non-null-asserted-nullish-coalescing.js +5 -29
- package/dist/rules/no-non-null-asserted-nullish-coalescing.js.map +1 -1
- package/dist/rules/no-non-null-asserted-optional-chain.js +2 -25
- package/dist/rules/no-non-null-asserted-optional-chain.js.map +1 -1
- package/dist/rules/no-non-null-assertion.js +20 -46
- package/dist/rules/no-non-null-assertion.js.map +1 -1
- package/dist/rules/no-redeclare.js +7 -31
- package/dist/rules/no-redeclare.js.map +1 -1
- package/dist/rules/no-redundant-type-constituents.js +12 -13
- package/dist/rules/no-redundant-type-constituents.js.map +1 -1
- package/dist/rules/no-require-imports.js +30 -4
- package/dist/rules/no-require-imports.js.map +1 -1
- package/dist/rules/no-restricted-imports.js +100 -77
- package/dist/rules/no-restricted-imports.js.map +1 -1
- package/dist/rules/no-shadow.js +30 -56
- package/dist/rules/no-shadow.js.map +1 -1
- package/dist/rules/no-this-alias.js +2 -25
- package/dist/rules/no-this-alias.js.map +1 -1
- package/dist/rules/no-throw-literal.js +6 -36
- package/dist/rules/no-throw-literal.js.map +1 -1
- package/dist/rules/no-type-alias.js +2 -25
- package/dist/rules/no-type-alias.js.map +1 -1
- package/dist/rules/no-unnecessary-boolean-literal-compare.js +6 -7
- package/dist/rules/no-unnecessary-boolean-literal-compare.js.map +1 -1
- package/dist/rules/no-unnecessary-condition.js +62 -22
- package/dist/rules/no-unnecessary-condition.js.map +1 -1
- package/dist/rules/no-unnecessary-qualifier.js +8 -7
- package/dist/rules/no-unnecessary-qualifier.js.map +1 -1
- package/dist/rules/no-unnecessary-type-arguments.js +5 -6
- package/dist/rules/no-unnecessary-type-arguments.js.map +1 -1
- package/dist/rules/no-unnecessary-type-assertion.js +37 -32
- package/dist/rules/no-unnecessary-type-assertion.js.map +1 -1
- package/dist/rules/no-unnecessary-type-constraint.js +18 -6
- package/dist/rules/no-unnecessary-type-constraint.js.map +1 -1
- package/dist/rules/no-unsafe-argument.js +11 -11
- package/dist/rules/no-unsafe-argument.js.map +1 -1
- package/dist/rules/no-unsafe-assignment.js +15 -17
- package/dist/rules/no-unsafe-assignment.js.map +1 -1
- package/dist/rules/no-unsafe-call.js +5 -6
- package/dist/rules/no-unsafe-call.js.map +1 -1
- package/dist/rules/no-unsafe-declaration-merging.js +4 -27
- package/dist/rules/no-unsafe-declaration-merging.js.map +1 -1
- package/dist/rules/no-unsafe-enum-comparison.js +94 -45
- package/dist/rules/no-unsafe-enum-comparison.js.map +1 -1
- package/dist/rules/no-unsafe-member-access.js +8 -10
- package/dist/rules/no-unsafe-member-access.js.map +1 -1
- package/dist/rules/no-unsafe-return.js +15 -15
- package/dist/rules/no-unsafe-return.js.map +1 -1
- package/dist/rules/no-unsafe-unary-minus.js +68 -0
- package/dist/rules/no-unsafe-unary-minus.js.map +1 -0
- package/dist/rules/no-unused-expressions.js +10 -25
- package/dist/rules/no-unused-expressions.js.map +1 -1
- package/dist/rules/no-unused-vars.js +37 -79
- package/dist/rules/no-unused-vars.js.map +1 -1
- package/dist/rules/no-use-before-define.js +8 -35
- package/dist/rules/no-use-before-define.js.map +1 -1
- package/dist/rules/no-useless-constructor.js +3 -27
- package/dist/rules/no-useless-constructor.js.map +1 -1
- package/dist/rules/no-useless-empty-export.js +18 -36
- package/dist/rules/no-useless-empty-export.js.map +1 -1
- package/dist/rules/no-useless-template-literals.js +138 -0
- package/dist/rules/no-useless-template-literals.js.map +1 -0
- package/dist/rules/no-var-requires.js +36 -39
- package/dist/rules/no-var-requires.js.map +1 -1
- package/dist/rules/non-nullable-type-assertion-style.js +9 -8
- package/dist/rules/non-nullable-type-assertion-style.js.map +1 -1
- package/dist/rules/object-curly-spacing.js +20 -19
- package/dist/rules/object-curly-spacing.js.map +1 -1
- package/dist/rules/padding-line-between-statements.js +28 -54
- package/dist/rules/padding-line-between-statements.js.map +1 -1
- package/dist/rules/parameter-properties.js +4 -29
- package/dist/rules/parameter-properties.js.map +1 -1
- package/dist/rules/prefer-as-const.js +2 -25
- package/dist/rules/prefer-as-const.js.map +1 -1
- package/dist/rules/prefer-destructuring.js +200 -0
- package/dist/rules/prefer-destructuring.js.map +1 -0
- package/dist/rules/prefer-enum-initializers.js +3 -27
- package/dist/rules/prefer-enum-initializers.js.map +1 -1
- package/dist/rules/prefer-find.js +237 -0
- package/dist/rules/prefer-find.js.map +1 -0
- package/dist/rules/prefer-for-of.js +7 -32
- package/dist/rules/prefer-for-of.js.map +1 -1
- package/dist/rules/prefer-function-type.js +9 -32
- package/dist/rules/prefer-function-type.js.map +1 -1
- package/dist/rules/prefer-includes.js +2 -2
- package/dist/rules/prefer-includes.js.map +1 -1
- package/dist/rules/prefer-literal-enum-member.js.map +1 -1
- package/dist/rules/prefer-namespace-keyword.js +4 -28
- package/dist/rules/prefer-namespace-keyword.js.map +1 -1
- package/dist/rules/prefer-nullish-coalescing.js +42 -30
- package/dist/rules/prefer-nullish-coalescing.js.map +1 -1
- package/dist/rules/prefer-optional-chain-utils/analyzeChain.js +20 -22
- package/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map +1 -1
- package/dist/rules/prefer-optional-chain-utils/compareNodes.js.map +1 -1
- package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js +8 -10
- package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js.map +1 -1
- package/dist/rules/prefer-optional-chain.js +9 -11
- package/dist/rules/prefer-optional-chain.js.map +1 -1
- package/dist/rules/prefer-promise-reject-errors.js +108 -0
- package/dist/rules/prefer-promise-reject-errors.js.map +1 -0
- package/dist/rules/prefer-readonly-parameter-types.js +8 -31
- package/dist/rules/prefer-readonly-parameter-types.js.map +1 -1
- package/dist/rules/prefer-readonly.js +61 -17
- package/dist/rules/prefer-readonly.js.map +1 -1
- package/dist/rules/prefer-reduce-type-parameter.js +6 -32
- package/dist/rules/prefer-reduce-type-parameter.js.map +1 -1
- package/dist/rules/prefer-regexp-exec.js +8 -10
- package/dist/rules/prefer-regexp-exec.js.map +1 -1
- package/dist/rules/prefer-return-this-type.js +2 -4
- package/dist/rules/prefer-return-this-type.js.map +1 -1
- package/dist/rules/prefer-string-starts-ends-with.js +44 -26
- package/dist/rules/prefer-string-starts-ends-with.js.map +1 -1
- package/dist/rules/prefer-ts-expect-error.js +3 -27
- package/dist/rules/prefer-ts-expect-error.js.map +1 -1
- package/dist/rules/promise-function-async.js +11 -12
- package/dist/rules/promise-function-async.js.map +1 -1
- package/dist/rules/quotes.js +5 -26
- package/dist/rules/quotes.js.map +1 -1
- package/dist/rules/require-array-sort-compare.js +17 -39
- package/dist/rules/require-array-sort-compare.js.map +1 -1
- package/dist/rules/require-await.js +22 -50
- package/dist/rules/require-await.js.map +1 -1
- package/dist/rules/restrict-plus-operands.js +7 -7
- package/dist/rules/restrict-plus-operands.js.map +1 -1
- package/dist/rules/restrict-template-expressions.js +11 -11
- package/dist/rules/restrict-template-expressions.js.map +1 -1
- package/dist/rules/return-await.js +12 -15
- package/dist/rules/return-await.js.map +1 -1
- package/dist/rules/semi.js +4 -25
- package/dist/rules/semi.js.map +1 -1
- package/dist/rules/sort-type-constituents.js +5 -30
- package/dist/rules/sort-type-constituents.js.map +1 -1
- package/dist/rules/space-before-blocks.js +8 -31
- package/dist/rules/space-before-blocks.js.map +1 -1
- package/dist/rules/space-before-function-paren.js +14 -39
- package/dist/rules/space-before-function-paren.js.map +1 -1
- package/dist/rules/space-infix-ops.js +18 -40
- package/dist/rules/space-infix-ops.js.map +1 -1
- package/dist/rules/strict-boolean-expressions.js +94 -85
- package/dist/rules/strict-boolean-expressions.js.map +1 -1
- package/dist/rules/switch-exhaustiveness-check.js +153 -50
- package/dist/rules/switch-exhaustiveness-check.js.map +1 -1
- package/dist/rules/triple-slash-reference.js +3 -27
- package/dist/rules/triple-slash-reference.js.map +1 -1
- package/dist/rules/type-annotation-spacing.js +17 -46
- package/dist/rules/type-annotation-spacing.js.map +1 -1
- package/dist/rules/typedef.js +6 -30
- package/dist/rules/typedef.js.map +1 -1
- package/dist/rules/unbound-method.js +21 -61
- package/dist/rules/unbound-method.js.map +1 -1
- package/dist/rules/unified-signatures.js +12 -37
- package/dist/rules/unified-signatures.js.map +1 -1
- package/dist/util/astUtils.js +4 -4
- package/dist/util/astUtils.js.map +1 -1
- package/dist/util/collectUnusedVariables.js +8 -9
- package/dist/util/collectUnusedVariables.js.map +1 -1
- package/dist/util/explicitReturnTypeUtils.js +43 -34
- package/dist/util/explicitReturnTypeUtils.js.map +1 -1
- package/dist/util/getESLintCoreRule.js +3 -31
- package/dist/util/getESLintCoreRule.js.map +1 -1
- package/dist/util/getFunctionHeadLoc.js +146 -36
- package/dist/util/getFunctionHeadLoc.js.map +1 -1
- package/dist/util/getOperatorPrecedence.js +1 -0
- package/dist/util/getOperatorPrecedence.js.map +1 -1
- package/dist/util/getStaticStringValue.js +46 -0
- package/dist/util/getStaticStringValue.js.map +1 -0
- package/dist/util/getStringLength.js.map +1 -1
- package/dist/util/getThisExpression.js +1 -1
- package/dist/util/getThisExpression.js.map +1 -1
- package/dist/util/getWrappedCode.js +8 -0
- package/dist/util/getWrappedCode.js.map +1 -0
- package/dist/util/getWrappingFixer.js +19 -5
- package/dist/util/getWrappingFixer.js.map +1 -1
- package/dist/util/index.js +1 -0
- package/dist/util/index.js.map +1 -1
- package/dist/util/isNodeEqual.js.map +1 -1
- package/dist/util/misc.js +5 -7
- package/dist/util/misc.js.map +1 -1
- package/dist/util/objectIterators.js.map +1 -1
- package/docs/rules/README.md +44 -7
- package/docs/rules/TEMPLATE.md +5 -1
- package/docs/rules/adjacent-overload-signatures.md +7 -1
- package/docs/rules/array-type.md +14 -6
- package/docs/rules/await-thenable.md +3 -1
- package/docs/rules/ban-ts-comment.md +12 -9
- package/docs/rules/ban-tslint-comment.md +3 -3
- package/docs/rules/ban-types.md +11 -62
- package/docs/rules/block-spacing.md +0 -2
- package/docs/rules/brace-style.md +0 -2
- package/docs/rules/camelcase.md +5 -2
- package/docs/rules/class-literal-property-style.md +5 -14
- package/docs/rules/class-methods-use-this.md +96 -0
- package/docs/rules/comma-dangle.md +0 -2
- package/docs/rules/comma-spacing.md +0 -2
- package/docs/rules/consistent-generic-constructors.md +7 -4
- package/docs/rules/consistent-indexed-object-style.md +12 -12
- package/docs/rules/consistent-type-assertions.md +27 -22
- package/docs/rules/consistent-type-definitions.md +12 -13
- package/docs/rules/consistent-type-exports.md +9 -4
- package/docs/rules/consistent-type-imports.md +9 -6
- package/docs/rules/default-param-last.md +16 -6
- package/docs/rules/dot-notation.md +10 -5
- package/docs/rules/explicit-function-return-type.md +31 -30
- package/docs/rules/explicit-member-accessibility.md +49 -36
- package/docs/rules/explicit-module-boundary-types.md +30 -31
- package/docs/rules/func-call-spacing.md +0 -2
- package/docs/rules/indent.md +0 -2
- package/docs/rules/init-declarations.md +0 -2
- package/docs/rules/key-spacing.md +1 -3
- package/docs/rules/keyword-spacing.md +1 -3
- package/docs/rules/lines-around-comment.md +0 -2
- package/docs/rules/lines-between-class-members.md +2 -10
- package/docs/rules/max-params.md +10 -0
- package/docs/rules/member-delimiter-style.md +4 -1
- package/docs/rules/member-ordering.md +278 -200
- package/docs/rules/method-signature-style.md +7 -4
- package/docs/rules/naming-convention.md +31 -16
- package/docs/rules/no-array-constructor.md +0 -6
- package/docs/rules/no-array-delete.md +40 -0
- package/docs/rules/no-base-to-string.md +2 -2
- package/docs/rules/no-confusing-void-expression.md +3 -3
- package/docs/rules/no-dupe-class-members.md +3 -1
- package/docs/rules/no-duplicate-enum-values.md +8 -0
- package/docs/rules/no-duplicate-imports.md +5 -2
- package/docs/rules/no-duplicate-type-constituents.md +7 -2
- package/docs/rules/no-dynamic-delete.md +1 -1
- package/docs/rules/no-empty-function.md +13 -9
- package/docs/rules/no-empty-interface.md +2 -13
- package/docs/rules/no-explicit-any.md +28 -34
- package/docs/rules/no-extra-non-null-assertion.md +2 -0
- package/docs/rules/no-extra-parens.md +0 -2
- package/docs/rules/no-extra-semi.md +2 -2
- package/docs/rules/no-extraneous-class.md +10 -9
- package/docs/rules/no-floating-promises.md +24 -6
- package/docs/rules/no-for-in-array.md +13 -8
- package/docs/rules/no-implied-eval.md +2 -1
- package/docs/rules/no-import-type-side-effects.md +1 -2
- package/docs/rules/no-inferrable-types.md +4 -4
- package/docs/rules/no-invalid-this.md +3 -1
- package/docs/rules/no-invalid-void-type.md +5 -6
- package/docs/rules/no-loop-func.md +0 -2
- package/docs/rules/no-loss-of-precision.md +0 -2
- package/docs/rules/no-magic-numbers.md +14 -26
- package/docs/rules/no-meaningless-void-operator.md +6 -0
- package/docs/rules/no-misused-new.md +2 -1
- package/docs/rules/no-misused-promises.md +14 -13
- package/docs/rules/no-namespace.md +9 -7
- package/docs/rules/no-non-null-asserted-nullish-coalescing.md +5 -0
- package/docs/rules/no-non-null-asserted-optional-chain.md +5 -0
- package/docs/rules/no-non-null-assertion.md +2 -2
- package/docs/rules/no-parameter-properties.md +12 -0
- package/docs/rules/no-redeclare.md +5 -3
- package/docs/rules/no-redundant-type-constituents.md +14 -0
- package/docs/rules/no-require-imports.md +24 -1
- package/docs/rules/no-restricted-imports.md +24 -16
- package/docs/rules/no-shadow.md +15 -11
- package/docs/rules/no-this-alias.md +73 -3
- package/docs/rules/no-throw-literal.md +9 -11
- package/docs/rules/no-type-alias.md +55 -48
- package/docs/rules/no-unnecessary-boolean-literal-compare.md +5 -5
- package/docs/rules/no-unnecessary-condition.md +18 -2
- package/docs/rules/no-unnecessary-qualifier.md +1 -1
- package/docs/rules/no-unnecessary-type-arguments.md +7 -1
- package/docs/rules/no-unnecessary-type-assertion.md +2 -2
- package/docs/rules/no-unnecessary-type-constraint.md +1 -1
- package/docs/rules/no-unsafe-argument.md +12 -2
- package/docs/rules/no-unsafe-assignment.md +11 -1
- package/docs/rules/no-unsafe-call.md +10 -0
- package/docs/rules/no-unsafe-declaration-merging.md +5 -0
- package/docs/rules/no-unsafe-enum-comparison.md +15 -10
- package/docs/rules/no-unsafe-member-access.md +11 -1
- package/docs/rules/no-unsafe-return.md +11 -1
- package/docs/rules/no-unsafe-unary-minus.md +52 -0
- package/docs/rules/no-unused-expressions.md +0 -2
- package/docs/rules/no-unused-vars.md +17 -2
- package/docs/rules/no-use-before-define.md +4 -14
- package/docs/rules/no-useless-constructor.md +0 -2
- package/docs/rules/no-useless-empty-export.md +4 -0
- package/docs/rules/no-useless-template-literals.md +57 -0
- package/docs/rules/no-var-requires.md +24 -1
- package/docs/rules/non-nullable-type-assertion-style.md +1 -1
- package/docs/rules/object-curly-spacing.md +0 -2
- package/docs/rules/padding-line-between-statements.md +3 -5
- package/docs/rules/parameter-properties.md +22 -19
- package/docs/rules/prefer-as-const.md +4 -1
- package/docs/rules/prefer-destructuring.md +91 -0
- package/docs/rules/prefer-enum-initializers.md +1 -1
- package/docs/rules/prefer-find.md +39 -0
- package/docs/rules/prefer-for-of.md +3 -5
- package/docs/rules/prefer-function-type.md +1 -1
- package/docs/rules/prefer-includes.md +1 -3
- package/docs/rules/prefer-literal-enum-member.md +6 -4
- package/docs/rules/prefer-namespace-keyword.md +1 -1
- package/docs/rules/prefer-nullish-coalescing.md +27 -15
- package/docs/rules/prefer-optional-chain.md +18 -17
- package/docs/rules/prefer-promise-reject-errors.md +50 -0
- package/docs/rules/prefer-readonly-parameter-types.md +58 -32
- package/docs/rules/prefer-readonly.md +19 -4
- package/docs/rules/prefer-reduce-type-parameter.md +3 -1
- package/docs/rules/prefer-string-starts-ends-with.md +2 -1
- package/docs/rules/prefer-ts-expect-error.md +1 -0
- package/docs/rules/promise-function-async.md +73 -0
- package/docs/rules/quotes.md +0 -2
- package/docs/rules/require-array-sort-compare.md +7 -7
- package/docs/rules/require-await.md +2 -2
- package/docs/rules/restrict-plus-operands.md +16 -16
- package/docs/rules/restrict-template-expressions.md +11 -7
- package/docs/rules/return-await.md +8 -8
- package/docs/rules/semi.md +0 -4
- package/docs/rules/sort-type-constituents.md +62 -0
- package/docs/rules/space-before-blocks.md +5 -4
- package/docs/rules/space-before-function-paren.md +0 -2
- package/docs/rules/strict-boolean-expressions.md +7 -0
- package/docs/rules/switch-exhaustiveness-check.md +127 -8
- package/docs/rules/triple-slash-reference.md +76 -25
- package/docs/rules/type-annotation-spacing.md +8 -8
- package/docs/rules/typedef.md +19 -19
- package/docs/rules/unbound-method.md +4 -2
- package/docs/rules/unified-signatures.md +11 -2
- package/index.d.ts +6 -2
- package/package.json +31 -23
- package/rules.d.ts +46 -0
|
@@ -25,7 +25,7 @@ type OrderConfig = MemberType[] | SortedOrderConfig | 'never';
|
|
|
25
25
|
interface SortedOrderConfig {
|
|
26
26
|
memberTypes?: MemberType[] | 'never';
|
|
27
27
|
optionalityOrder?: 'optional-first' | 'required-first';
|
|
28
|
-
order
|
|
28
|
+
order?:
|
|
29
29
|
| 'alphabetically'
|
|
30
30
|
| 'alphabetically-case-insensitive'
|
|
31
31
|
| 'as-written'
|
|
@@ -80,145 +80,178 @@ The default configuration looks as follows:
|
|
|
80
80
|
|
|
81
81
|
```jsonc
|
|
82
82
|
{
|
|
83
|
-
"default":
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
"default": {
|
|
84
|
+
"memberTypes": [
|
|
85
|
+
// Index signature
|
|
86
|
+
"signature",
|
|
87
|
+
"call-signature",
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
// Fields
|
|
90
|
+
"public-static-field",
|
|
91
|
+
"protected-static-field",
|
|
92
|
+
"private-static-field",
|
|
93
|
+
"#private-static-field",
|
|
93
94
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
"public-decorated-field",
|
|
96
|
+
"protected-decorated-field",
|
|
97
|
+
"private-decorated-field",
|
|
97
98
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
"public-instance-field",
|
|
100
|
+
"protected-instance-field",
|
|
101
|
+
"private-instance-field",
|
|
102
|
+
"#private-instance-field",
|
|
102
103
|
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
"public-abstract-field",
|
|
105
|
+
"protected-abstract-field",
|
|
105
106
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
"public-field",
|
|
108
|
+
"protected-field",
|
|
109
|
+
"private-field",
|
|
110
|
+
"#private-field",
|
|
110
111
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
"static-field",
|
|
113
|
+
"instance-field",
|
|
114
|
+
"abstract-field",
|
|
114
115
|
|
|
115
|
-
|
|
116
|
+
"decorated-field",
|
|
116
117
|
|
|
117
|
-
|
|
118
|
+
"field",
|
|
118
119
|
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
// Static initialization
|
|
121
|
+
"static-initialization",
|
|
121
122
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
// Constructors
|
|
124
|
+
"public-constructor",
|
|
125
|
+
"protected-constructor",
|
|
126
|
+
"private-constructor",
|
|
126
127
|
|
|
127
|
-
|
|
128
|
+
"constructor",
|
|
128
129
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
// Accessors
|
|
131
|
+
"public-static-accessor",
|
|
132
|
+
"protected-static-accessor",
|
|
133
|
+
"private-static-accessor",
|
|
134
|
+
"#private-static-accessor",
|
|
134
135
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
"public-decorated-accessor",
|
|
137
|
+
"protected-decorated-accessor",
|
|
138
|
+
"private-decorated-accessor",
|
|
138
139
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
"public-instance-accessor",
|
|
141
|
+
"protected-instance-accessor",
|
|
142
|
+
"private-instance-accessor",
|
|
143
|
+
"#private-instance-accessor",
|
|
143
144
|
|
|
144
|
-
|
|
145
|
-
|
|
145
|
+
"public-abstract-accessor",
|
|
146
|
+
"protected-abstract-accessor",
|
|
146
147
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
"public-accessor",
|
|
149
|
+
"protected-accessor",
|
|
150
|
+
"private-accessor",
|
|
151
|
+
"#private-accessor",
|
|
151
152
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
"static-accessor",
|
|
154
|
+
"instance-accessor",
|
|
155
|
+
"abstract-accessor",
|
|
155
156
|
|
|
156
|
-
|
|
157
|
+
"decorated-accessor",
|
|
157
158
|
|
|
158
|
-
|
|
159
|
+
"accessor",
|
|
159
160
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
// Getters
|
|
162
|
+
"public-static-get",
|
|
163
|
+
"protected-static-get",
|
|
164
|
+
"private-static-get",
|
|
165
|
+
"#private-static-get",
|
|
165
166
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
"public-decorated-get",
|
|
168
|
+
"protected-decorated-get",
|
|
169
|
+
"private-decorated-get",
|
|
169
170
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
"public-instance-get",
|
|
172
|
+
"protected-instance-get",
|
|
173
|
+
"private-instance-get",
|
|
174
|
+
"#private-instance-get",
|
|
174
175
|
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
"public-abstract-get",
|
|
177
|
+
"protected-abstract-get",
|
|
177
178
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
179
|
+
"public-get",
|
|
180
|
+
"protected-get",
|
|
181
|
+
"private-get",
|
|
182
|
+
"#private-get",
|
|
182
183
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
"static-get",
|
|
185
|
+
"instance-get",
|
|
186
|
+
"abstract-get",
|
|
186
187
|
|
|
187
|
-
|
|
188
|
+
"decorated-get",
|
|
188
189
|
|
|
189
|
-
|
|
190
|
+
"get",
|
|
190
191
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
192
|
+
// Setters
|
|
193
|
+
"public-static-set",
|
|
194
|
+
"protected-static-set",
|
|
195
|
+
"private-static-set",
|
|
196
|
+
"#private-static-set",
|
|
196
197
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
"public-decorated-set",
|
|
199
|
+
"protected-decorated-set",
|
|
200
|
+
"private-decorated-set",
|
|
200
201
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
"public-instance-set",
|
|
203
|
+
"protected-instance-set",
|
|
204
|
+
"private-instance-set",
|
|
205
|
+
"#private-instance-set",
|
|
205
206
|
|
|
206
|
-
|
|
207
|
-
|
|
207
|
+
"public-abstract-set",
|
|
208
|
+
"protected-abstract-set",
|
|
208
209
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
"public-set",
|
|
211
|
+
"protected-set",
|
|
212
|
+
"private-set",
|
|
213
|
+
"#private-set",
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
215
|
+
"static-set",
|
|
216
|
+
"instance-set",
|
|
217
|
+
"abstract-set",
|
|
217
218
|
|
|
218
|
-
|
|
219
|
+
"decorated-set",
|
|
219
220
|
|
|
220
|
-
|
|
221
|
-
|
|
221
|
+
"set",
|
|
222
|
+
|
|
223
|
+
// Methods
|
|
224
|
+
"public-static-method",
|
|
225
|
+
"protected-static-method",
|
|
226
|
+
"private-static-method",
|
|
227
|
+
"#private-static-method",
|
|
228
|
+
|
|
229
|
+
"public-decorated-method",
|
|
230
|
+
"protected-decorated-method",
|
|
231
|
+
"private-decorated-method",
|
|
232
|
+
|
|
233
|
+
"public-instance-method",
|
|
234
|
+
"protected-instance-method",
|
|
235
|
+
"private-instance-method",
|
|
236
|
+
"#private-instance-method",
|
|
237
|
+
|
|
238
|
+
"public-abstract-method",
|
|
239
|
+
"protected-abstract-method",
|
|
240
|
+
|
|
241
|
+
"public-method",
|
|
242
|
+
"protected-method",
|
|
243
|
+
"private-method",
|
|
244
|
+
"#private-method",
|
|
245
|
+
|
|
246
|
+
"static-method",
|
|
247
|
+
"instance-method",
|
|
248
|
+
"abstract-method",
|
|
249
|
+
|
|
250
|
+
"decorated-method",
|
|
251
|
+
|
|
252
|
+
"method",
|
|
253
|
+
],
|
|
254
|
+
},
|
|
222
255
|
}
|
|
223
256
|
```
|
|
224
257
|
|
|
@@ -246,9 +279,9 @@ It also ignores accessibility and scope.
|
|
|
246
279
|
"rules": {
|
|
247
280
|
"@typescript-eslint/member-ordering": [
|
|
248
281
|
"error",
|
|
249
|
-
{ "default": ["signature", "method", "constructor", "field"] }
|
|
250
|
-
]
|
|
251
|
-
}
|
|
282
|
+
{ "default": ["signature", "method", "constructor", "field"] },
|
|
283
|
+
],
|
|
284
|
+
},
|
|
252
285
|
}
|
|
253
286
|
```
|
|
254
287
|
|
|
@@ -256,7 +289,7 @@ It also ignores accessibility and scope.
|
|
|
256
289
|
|
|
257
290
|
#### ❌ Incorrect
|
|
258
291
|
|
|
259
|
-
```ts
|
|
292
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
260
293
|
interface Foo {
|
|
261
294
|
B: string; // -> field
|
|
262
295
|
|
|
@@ -268,7 +301,7 @@ interface Foo {
|
|
|
268
301
|
}
|
|
269
302
|
```
|
|
270
303
|
|
|
271
|
-
```ts
|
|
304
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
272
305
|
type Foo = {
|
|
273
306
|
B: string; // -> field
|
|
274
307
|
|
|
@@ -280,7 +313,7 @@ type Foo = {
|
|
|
280
313
|
};
|
|
281
314
|
```
|
|
282
315
|
|
|
283
|
-
```ts
|
|
316
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
284
317
|
class Foo {
|
|
285
318
|
private C: string; // -> field
|
|
286
319
|
public D: string; // -> field
|
|
@@ -295,7 +328,7 @@ class Foo {
|
|
|
295
328
|
}
|
|
296
329
|
```
|
|
297
330
|
|
|
298
|
-
```ts
|
|
331
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
299
332
|
const Foo = class {
|
|
300
333
|
private C: string; // -> field
|
|
301
334
|
public D: string; // -> field
|
|
@@ -313,7 +346,7 @@ const Foo = class {
|
|
|
313
346
|
|
|
314
347
|
#### ✅ Correct
|
|
315
348
|
|
|
316
|
-
```ts
|
|
349
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
317
350
|
interface Foo {
|
|
318
351
|
[Z: string]: any; // -> signature
|
|
319
352
|
|
|
@@ -325,7 +358,7 @@ interface Foo {
|
|
|
325
358
|
}
|
|
326
359
|
```
|
|
327
360
|
|
|
328
|
-
```ts
|
|
361
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
329
362
|
type Foo = {
|
|
330
363
|
// no signature
|
|
331
364
|
|
|
@@ -337,7 +370,7 @@ type Foo = {
|
|
|
337
370
|
};
|
|
338
371
|
```
|
|
339
372
|
|
|
340
|
-
```ts
|
|
373
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
341
374
|
class Foo {
|
|
342
375
|
[Z: string]: any; // -> signature
|
|
343
376
|
|
|
@@ -352,7 +385,7 @@ class Foo {
|
|
|
352
385
|
}
|
|
353
386
|
```
|
|
354
387
|
|
|
355
|
-
```ts
|
|
388
|
+
```ts option='{ "default": ["signature", "method", "constructor", "field"] }'
|
|
356
389
|
const Foo = class {
|
|
357
390
|
[Z: string]: any; // -> signature
|
|
358
391
|
|
|
@@ -381,9 +414,9 @@ It doesn't apply to interfaces or type literals as accessibility and scope are n
|
|
|
381
414
|
"rules": {
|
|
382
415
|
"@typescript-eslint/member-ordering": [
|
|
383
416
|
"error",
|
|
384
|
-
{ "default": ["public-instance-method", "public-static-field"] }
|
|
385
|
-
]
|
|
386
|
-
}
|
|
417
|
+
{ "default": ["public-instance-method", "public-static-field"] },
|
|
418
|
+
],
|
|
419
|
+
},
|
|
387
420
|
}
|
|
388
421
|
```
|
|
389
422
|
|
|
@@ -391,7 +424,7 @@ It doesn't apply to interfaces or type literals as accessibility and scope are n
|
|
|
391
424
|
|
|
392
425
|
##### ❌ Incorrect
|
|
393
426
|
|
|
394
|
-
```ts
|
|
427
|
+
```ts option='{ "default": ["public-instance-method", "public-static-field"] }'
|
|
395
428
|
class Foo {
|
|
396
429
|
private C: string; // (irrelevant)
|
|
397
430
|
|
|
@@ -409,7 +442,7 @@ class Foo {
|
|
|
409
442
|
}
|
|
410
443
|
```
|
|
411
444
|
|
|
412
|
-
```ts
|
|
445
|
+
```ts option='{ "default": ["public-instance-method", "public-static-field"] }'
|
|
413
446
|
const Foo = class {
|
|
414
447
|
private C: string; // (irrelevant)
|
|
415
448
|
|
|
@@ -429,7 +462,7 @@ const Foo = class {
|
|
|
429
462
|
|
|
430
463
|
##### ✅ Correct
|
|
431
464
|
|
|
432
|
-
```ts
|
|
465
|
+
```ts option='{ "default": ["public-instance-method", "public-static-field"] }'
|
|
433
466
|
class Foo {
|
|
434
467
|
public B(): void {} // -> public instance method
|
|
435
468
|
|
|
@@ -447,7 +480,7 @@ class Foo {
|
|
|
447
480
|
}
|
|
448
481
|
```
|
|
449
482
|
|
|
450
|
-
```ts
|
|
483
|
+
```ts option='{ "default": ["public-instance-method", "public-static-field"] }'
|
|
451
484
|
const Foo = class {
|
|
452
485
|
public B(): void {} // -> public instance method
|
|
453
486
|
|
|
@@ -475,9 +508,9 @@ It doesn't apply to interfaces or type literals as accessibility and scope are n
|
|
|
475
508
|
"rules": {
|
|
476
509
|
"@typescript-eslint/member-ordering": [
|
|
477
510
|
"error",
|
|
478
|
-
{ "default": ["public-static-field", "static-field", "instance-field"] }
|
|
479
|
-
]
|
|
480
|
-
}
|
|
511
|
+
{ "default": ["public-static-field", "static-field", "instance-field"] },
|
|
512
|
+
],
|
|
513
|
+
},
|
|
481
514
|
}
|
|
482
515
|
```
|
|
483
516
|
|
|
@@ -485,7 +518,7 @@ It doesn't apply to interfaces or type literals as accessibility and scope are n
|
|
|
485
518
|
|
|
486
519
|
##### ❌ Incorrect
|
|
487
520
|
|
|
488
|
-
```ts
|
|
521
|
+
```ts option='{ "default": ["public-static-field", "static-field", "instance-field"] }'
|
|
489
522
|
class Foo {
|
|
490
523
|
private E: string; // -> instance field
|
|
491
524
|
|
|
@@ -499,7 +532,7 @@ class Foo {
|
|
|
499
532
|
}
|
|
500
533
|
```
|
|
501
534
|
|
|
502
|
-
```ts
|
|
535
|
+
```ts option='{ "default": ["public-static-field", "static-field", "instance-field"] }'
|
|
503
536
|
const foo = class {
|
|
504
537
|
public T(): void {} // method (irrelevant)
|
|
505
538
|
|
|
@@ -520,7 +553,7 @@ const foo = class {
|
|
|
520
553
|
|
|
521
554
|
##### ✅ Correct
|
|
522
555
|
|
|
523
|
-
```ts
|
|
556
|
+
```ts option='{ "default": ["public-static-field", "static-field", "instance-field"] }'
|
|
524
557
|
class Foo {
|
|
525
558
|
public static A: string; // -> public static field
|
|
526
559
|
|
|
@@ -534,7 +567,7 @@ class Foo {
|
|
|
534
567
|
}
|
|
535
568
|
```
|
|
536
569
|
|
|
537
|
-
```ts
|
|
570
|
+
```ts option='{ "default": ["public-static-field", "static-field", "instance-field"] }'
|
|
538
571
|
const foo = class {
|
|
539
572
|
[Z: string]: any; // -> signature (irrelevant)
|
|
540
573
|
|
|
@@ -564,9 +597,9 @@ Default settings will be used for class declarations and all other syntax constr
|
|
|
564
597
|
"rules": {
|
|
565
598
|
"@typescript-eslint/member-ordering": [
|
|
566
599
|
"error",
|
|
567
|
-
{ "classes": ["method", "constructor", "field"] }
|
|
568
|
-
]
|
|
569
|
-
}
|
|
600
|
+
{ "classes": ["method", "constructor", "field"] },
|
|
601
|
+
],
|
|
602
|
+
},
|
|
570
603
|
}
|
|
571
604
|
```
|
|
572
605
|
|
|
@@ -574,7 +607,7 @@ Default settings will be used for class declarations and all other syntax constr
|
|
|
574
607
|
|
|
575
608
|
##### ❌ Incorrect
|
|
576
609
|
|
|
577
|
-
```ts
|
|
610
|
+
```ts option='{ "classes": ["method", "constructor", "field"] }'
|
|
578
611
|
class Foo {
|
|
579
612
|
private C: string; // -> field
|
|
580
613
|
public D: string; // -> field
|
|
@@ -589,7 +622,7 @@ class Foo {
|
|
|
589
622
|
|
|
590
623
|
##### ✅ Correct
|
|
591
624
|
|
|
592
|
-
```ts
|
|
625
|
+
```ts option='{ "classes": ["method", "constructor", "field"] }'
|
|
593
626
|
class Foo {
|
|
594
627
|
public static A(): void {} // -> method
|
|
595
628
|
public B(): void {} // -> method
|
|
@@ -614,9 +647,9 @@ Default settings will be used for class declarations and all other syntax constr
|
|
|
614
647
|
"rules": {
|
|
615
648
|
"@typescript-eslint/member-ordering": [
|
|
616
649
|
"error",
|
|
617
|
-
{ "classExpressions": ["method", "constructor", "field"] }
|
|
618
|
-
]
|
|
619
|
-
}
|
|
650
|
+
{ "classExpressions": ["method", "constructor", "field"] },
|
|
651
|
+
],
|
|
652
|
+
},
|
|
620
653
|
}
|
|
621
654
|
```
|
|
622
655
|
|
|
@@ -624,7 +657,7 @@ Default settings will be used for class declarations and all other syntax constr
|
|
|
624
657
|
|
|
625
658
|
##### ❌ Incorrect
|
|
626
659
|
|
|
627
|
-
```ts
|
|
660
|
+
```ts option='{ "classExpressions": ["method", "constructor", "field"] }'
|
|
628
661
|
const foo = class {
|
|
629
662
|
private C: string; // -> field
|
|
630
663
|
public D: string; // -> field
|
|
@@ -639,7 +672,7 @@ const foo = class {
|
|
|
639
672
|
|
|
640
673
|
##### ✅ Correct
|
|
641
674
|
|
|
642
|
-
```ts
|
|
675
|
+
```ts option='{ "classExpressions": ["method", "constructor", "field"] }'
|
|
643
676
|
const foo = class {
|
|
644
677
|
public static A(): void {} // -> method
|
|
645
678
|
public B(): void {} // -> method
|
|
@@ -668,9 +701,9 @@ These member types are the only ones allowed for `interfaces`.
|
|
|
668
701
|
"rules": {
|
|
669
702
|
"@typescript-eslint/member-ordering": [
|
|
670
703
|
"error",
|
|
671
|
-
{ "interfaces": ["signature", "method", "constructor", "field"] }
|
|
672
|
-
]
|
|
673
|
-
}
|
|
704
|
+
{ "interfaces": ["signature", "method", "constructor", "field"] },
|
|
705
|
+
],
|
|
706
|
+
},
|
|
674
707
|
}
|
|
675
708
|
```
|
|
676
709
|
|
|
@@ -678,7 +711,7 @@ These member types are the only ones allowed for `interfaces`.
|
|
|
678
711
|
|
|
679
712
|
#### ❌ Incorrect
|
|
680
713
|
|
|
681
|
-
```ts
|
|
714
|
+
```ts option='{ "interfaces": ["signature", "method", "constructor", "field"] }'
|
|
682
715
|
interface Foo {
|
|
683
716
|
B: string; // -> field
|
|
684
717
|
|
|
@@ -692,7 +725,7 @@ interface Foo {
|
|
|
692
725
|
|
|
693
726
|
#### ✅ Correct
|
|
694
727
|
|
|
695
|
-
```ts
|
|
728
|
+
```ts option='{ "interfaces": ["signature", "method", "constructor", "field"] }'
|
|
696
729
|
interface Foo {
|
|
697
730
|
[Z: string]: any; // -> signature
|
|
698
731
|
|
|
@@ -720,9 +753,9 @@ These member types are the only ones allowed for `typeLiterals`.
|
|
|
720
753
|
"rules": {
|
|
721
754
|
"@typescript-eslint/member-ordering": [
|
|
722
755
|
"error",
|
|
723
|
-
{ "typeLiterals": ["signature", "method", "constructor", "field"] }
|
|
724
|
-
]
|
|
725
|
-
}
|
|
756
|
+
{ "typeLiterals": ["signature", "method", "constructor", "field"] },
|
|
757
|
+
],
|
|
758
|
+
},
|
|
726
759
|
}
|
|
727
760
|
```
|
|
728
761
|
|
|
@@ -730,7 +763,7 @@ These member types are the only ones allowed for `typeLiterals`.
|
|
|
730
763
|
|
|
731
764
|
#### ❌ Incorrect
|
|
732
765
|
|
|
733
|
-
```ts
|
|
766
|
+
```ts option='{ "typeLiterals": ["signature", "method", "constructor", "field"] }'
|
|
734
767
|
type Foo = {
|
|
735
768
|
B: string; // -> field
|
|
736
769
|
|
|
@@ -744,7 +777,7 @@ type Foo = {
|
|
|
744
777
|
|
|
745
778
|
#### ✅ Correct
|
|
746
779
|
|
|
747
|
-
```ts
|
|
780
|
+
```ts option='{ "typeLiterals": ["signature", "method", "constructor", "field"] }'
|
|
748
781
|
type Foo = {
|
|
749
782
|
[Z: string]: any; // -> signature
|
|
750
783
|
|
|
@@ -761,7 +794,8 @@ type Foo = {
|
|
|
761
794
|
#### Sorting Alphabetically Within Member Groups
|
|
762
795
|
|
|
763
796
|
This config specifies that within each `memberTypes` group, members are in an alphabetic case-sensitive order.
|
|
764
|
-
|
|
797
|
+
The default member order will be applied if `memberTypes` is not specified.
|
|
798
|
+
You can see the default order in [Default Configuration](#default-configuration).
|
|
765
799
|
|
|
766
800
|
```jsonc
|
|
767
801
|
// .eslintrc.json
|
|
@@ -771,14 +805,11 @@ You can copy and paste the default order from [Default Configuration](#default-c
|
|
|
771
805
|
"error",
|
|
772
806
|
{
|
|
773
807
|
"default": {
|
|
774
|
-
"
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
}
|
|
780
|
-
]
|
|
781
|
-
}
|
|
808
|
+
"order": "alphabetically",
|
|
809
|
+
},
|
|
810
|
+
},
|
|
811
|
+
],
|
|
812
|
+
},
|
|
782
813
|
}
|
|
783
814
|
```
|
|
784
815
|
|
|
@@ -786,7 +817,7 @@ You can copy and paste the default order from [Default Configuration](#default-c
|
|
|
786
817
|
|
|
787
818
|
##### ❌ Incorrect
|
|
788
819
|
|
|
789
|
-
```ts
|
|
820
|
+
```ts option='{"default":{"order":"alphabetically"}}'
|
|
790
821
|
interface Foo {
|
|
791
822
|
a: x;
|
|
792
823
|
B: x;
|
|
@@ -800,7 +831,7 @@ interface Foo {
|
|
|
800
831
|
|
|
801
832
|
##### ✅ Correct
|
|
802
833
|
|
|
803
|
-
```ts
|
|
834
|
+
```ts option='{"default":{"order":"alphabetically"}}'
|
|
804
835
|
interface Foo {
|
|
805
836
|
B: x;
|
|
806
837
|
a: x;
|
|
@@ -812,10 +843,62 @@ interface Foo {
|
|
|
812
843
|
}
|
|
813
844
|
```
|
|
814
845
|
|
|
846
|
+
#### Sorting Alphabetically Within Custom Member Groups
|
|
847
|
+
|
|
848
|
+
This config specifies that within each custom `memberTypes` group, members are in an alphabetic case-sensitive order.
|
|
849
|
+
|
|
850
|
+
```jsonc
|
|
851
|
+
// .eslintrc.json
|
|
852
|
+
{
|
|
853
|
+
"rules": {
|
|
854
|
+
"@typescript-eslint/member-ordering": [
|
|
855
|
+
"error",
|
|
856
|
+
{
|
|
857
|
+
"default": {
|
|
858
|
+
"memberTypes": ["method", "field"],
|
|
859
|
+
"order": "alphabetically",
|
|
860
|
+
},
|
|
861
|
+
},
|
|
862
|
+
],
|
|
863
|
+
},
|
|
864
|
+
}
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
<!--tabs-->
|
|
868
|
+
|
|
869
|
+
##### ❌ Incorrect
|
|
870
|
+
|
|
871
|
+
```ts option='{"default":{"memberTypes":["method","field"],"order":"alphabetically"}}'
|
|
872
|
+
interface Foo {
|
|
873
|
+
B(): void;
|
|
874
|
+
c(): void;
|
|
875
|
+
a(): void;
|
|
876
|
+
|
|
877
|
+
a: x;
|
|
878
|
+
B: x;
|
|
879
|
+
c: x;
|
|
880
|
+
}
|
|
881
|
+
```
|
|
882
|
+
|
|
883
|
+
##### ✅ Correct
|
|
884
|
+
|
|
885
|
+
```ts option='{"default":{"memberTypes":["method","field"],"order":"alphabetically"}}'
|
|
886
|
+
interface Foo {
|
|
887
|
+
B(): void;
|
|
888
|
+
a(): void;
|
|
889
|
+
c(): void;
|
|
890
|
+
|
|
891
|
+
B: x;
|
|
892
|
+
a: x;
|
|
893
|
+
c: x;
|
|
894
|
+
}
|
|
895
|
+
```
|
|
896
|
+
|
|
815
897
|
#### Sorting Alphabetically Case Insensitive Within Member Groups
|
|
816
898
|
|
|
817
|
-
This config specifies that within each `memberTypes` group, members are in an alphabetic case-
|
|
818
|
-
|
|
899
|
+
This config specifies that within each `memberTypes` group, members are in an alphabetic case-insensitive order.
|
|
900
|
+
The default member order will be applied if `memberTypes` is not specified.
|
|
901
|
+
You can see the default order in [Default Configuration](#default-configuration).
|
|
819
902
|
|
|
820
903
|
```jsonc
|
|
821
904
|
// .eslintrc.json
|
|
@@ -825,14 +908,11 @@ You can copy and paste the default order from [Default Configuration](#default-c
|
|
|
825
908
|
"error",
|
|
826
909
|
{
|
|
827
910
|
"default": {
|
|
828
|
-
"
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
}
|
|
834
|
-
]
|
|
835
|
-
}
|
|
911
|
+
"order": "alphabetically-case-insensitive",
|
|
912
|
+
},
|
|
913
|
+
},
|
|
914
|
+
],
|
|
915
|
+
},
|
|
836
916
|
}
|
|
837
917
|
```
|
|
838
918
|
|
|
@@ -840,7 +920,7 @@ You can copy and paste the default order from [Default Configuration](#default-c
|
|
|
840
920
|
|
|
841
921
|
##### ❌ Incorrect
|
|
842
922
|
|
|
843
|
-
```ts
|
|
923
|
+
```ts option='{"default":{"order":"alphabetically-case-insensitive"}}'
|
|
844
924
|
interface Foo {
|
|
845
925
|
B: x;
|
|
846
926
|
a: x;
|
|
@@ -854,7 +934,7 @@ interface Foo {
|
|
|
854
934
|
|
|
855
935
|
##### ✅ Correct
|
|
856
936
|
|
|
857
|
-
```ts
|
|
937
|
+
```ts option='{"default":{"order":"alphabetically-case-insensitive"}}'
|
|
858
938
|
interface Foo {
|
|
859
939
|
a: x;
|
|
860
940
|
B: x;
|
|
@@ -877,9 +957,9 @@ It ignores any member group types completely by specifying `"never"` for `member
|
|
|
877
957
|
"rules": {
|
|
878
958
|
"@typescript-eslint/member-ordering": [
|
|
879
959
|
"error",
|
|
880
|
-
{ "default": { "memberTypes": "never", "order": "alphabetically" } }
|
|
881
|
-
]
|
|
882
|
-
}
|
|
960
|
+
{ "default": { "memberTypes": "never", "order": "alphabetically" } },
|
|
961
|
+
],
|
|
962
|
+
},
|
|
883
963
|
}
|
|
884
964
|
```
|
|
885
965
|
|
|
@@ -887,9 +967,8 @@ It ignores any member group types completely by specifying `"never"` for `member
|
|
|
887
967
|
|
|
888
968
|
##### ❌ Incorrect
|
|
889
969
|
|
|
890
|
-
```ts
|
|
970
|
+
```ts option='{ "default": { "memberTypes": "never", "order": "alphabetically" } }'
|
|
891
971
|
interface Foo {
|
|
892
|
-
static c = 0;
|
|
893
972
|
b(): void;
|
|
894
973
|
a: boolean;
|
|
895
974
|
|
|
@@ -901,11 +980,10 @@ interface Foo {
|
|
|
901
980
|
|
|
902
981
|
##### ✅ Correct
|
|
903
982
|
|
|
904
|
-
```ts
|
|
983
|
+
```ts option='{ "default": { "memberTypes": "never", "order": "alphabetically" } }'
|
|
905
984
|
interface Foo {
|
|
906
985
|
a: boolean;
|
|
907
986
|
b(): void;
|
|
908
|
-
static c = 0;
|
|
909
987
|
|
|
910
988
|
[a: string]: number; // Order doesn't matter (no sortable identifier)
|
|
911
989
|
new (): Bar; // Order doesn't matter (no sortable identifier)
|
|
@@ -928,11 +1006,11 @@ This config places all optional members before all required members:
|
|
|
928
1006
|
{
|
|
929
1007
|
"default": {
|
|
930
1008
|
"optionalityOrder": "optional-first",
|
|
931
|
-
"order": "alphabetically"
|
|
932
|
-
}
|
|
933
|
-
}
|
|
934
|
-
]
|
|
935
|
-
}
|
|
1009
|
+
"order": "alphabetically",
|
|
1010
|
+
},
|
|
1011
|
+
},
|
|
1012
|
+
],
|
|
1013
|
+
},
|
|
936
1014
|
}
|
|
937
1015
|
```
|
|
938
1016
|
|
|
@@ -940,7 +1018,7 @@ This config places all optional members before all required members:
|
|
|
940
1018
|
|
|
941
1019
|
##### ❌ Incorrect
|
|
942
1020
|
|
|
943
|
-
```ts
|
|
1021
|
+
```ts option='{ "default": { "optionalityOrder": "optional-first", "order": "alphabetically" } }'
|
|
944
1022
|
interface Foo {
|
|
945
1023
|
a: boolean;
|
|
946
1024
|
b?: number;
|
|
@@ -950,7 +1028,7 @@ interface Foo {
|
|
|
950
1028
|
|
|
951
1029
|
##### ✅ Correct
|
|
952
1030
|
|
|
953
|
-
```ts
|
|
1031
|
+
```ts option='{ "default": { "optionalityOrder": "optional-first", "order": "alphabetically" } }'
|
|
954
1032
|
interface Foo {
|
|
955
1033
|
b?: number;
|
|
956
1034
|
a: boolean;
|
|
@@ -971,11 +1049,11 @@ This config places all required members before all optional members:
|
|
|
971
1049
|
{
|
|
972
1050
|
"default": {
|
|
973
1051
|
"optionalityOrder": "required-first",
|
|
974
|
-
"order": "alphabetically"
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
]
|
|
978
|
-
}
|
|
1052
|
+
"order": "alphabetically",
|
|
1053
|
+
},
|
|
1054
|
+
},
|
|
1055
|
+
],
|
|
1056
|
+
},
|
|
979
1057
|
}
|
|
980
1058
|
```
|
|
981
1059
|
|
|
@@ -983,7 +1061,7 @@ This config places all required members before all optional members:
|
|
|
983
1061
|
|
|
984
1062
|
##### ❌ Incorrect
|
|
985
1063
|
|
|
986
|
-
```ts
|
|
1064
|
+
```ts option='{ "default": { "optionalityOrder": "required-first", "order": "alphabetically" } }'
|
|
987
1065
|
interface Foo {
|
|
988
1066
|
a: boolean;
|
|
989
1067
|
b?: number;
|
|
@@ -993,7 +1071,7 @@ interface Foo {
|
|
|
993
1071
|
|
|
994
1072
|
##### ✅ Correct
|
|
995
1073
|
|
|
996
|
-
```ts
|
|
1074
|
+
```ts option='{ "default": { "optionalityOrder": "required-first", "order": "alphabetically" } }'
|
|
997
1075
|
interface Foo {
|
|
998
1076
|
a: boolean;
|
|
999
1077
|
c: string;
|
|
@@ -1193,7 +1271,7 @@ It is also possible to group member types by their accessibility (`static`, `ins
|
|
|
1193
1271
|
// Methods
|
|
1194
1272
|
"public-method", // = ["public-static-method", "public-instance-method"]
|
|
1195
1273
|
"protected-method", // = ["protected-static-method", "protected-instance-method"]
|
|
1196
|
-
"private-method" // = ["private-static-method", "private-instance-method"]
|
|
1274
|
+
"private-method", // = ["private-static-method", "private-instance-method"]
|
|
1197
1275
|
]
|
|
1198
1276
|
```
|
|
1199
1277
|
|
|
@@ -1239,7 +1317,7 @@ their accessibility.
|
|
|
1239
1317
|
"protected-decorated-method",
|
|
1240
1318
|
"private-decorated-method",
|
|
1241
1319
|
|
|
1242
|
-
"decorated-method" // = ["public-decorated-method", "protected-decorated-method", "private-decorated-method"]
|
|
1320
|
+
"decorated-method", // = ["public-decorated-method", "protected-decorated-method", "private-decorated-method"]
|
|
1243
1321
|
]
|
|
1244
1322
|
```
|
|
1245
1323
|
|
|
@@ -1276,7 +1354,7 @@ Another option is to group the member types by their scope (`public`, `protected
|
|
|
1276
1354
|
// Methods
|
|
1277
1355
|
"static-method", // = ["public-static-method", "protected-static-method", "private-static-method"]
|
|
1278
1356
|
"instance-method", // = ["public-instance-method", "protected-instance-method", "private-instance-method"]
|
|
1279
|
-
"abstract-method" // = ["public-abstract-method", "protected-abstract-method"]
|
|
1357
|
+
"abstract-method", // = ["public-abstract-method", "protected-abstract-method"]
|
|
1280
1358
|
]
|
|
1281
1359
|
```
|
|
1282
1360
|
|
|
@@ -1308,7 +1386,7 @@ The third grouping option is to ignore both scope and accessibility.
|
|
|
1308
1386
|
// "public-abstract-set", "protected-abstract-set"]
|
|
1309
1387
|
|
|
1310
1388
|
// Methods
|
|
1311
|
-
"method" // = ["public-static-method", "protected-static-method", "private-static-method", "public-instance-method", "protected-instance-method", "private-instance-method",
|
|
1389
|
+
"method", // = ["public-static-method", "protected-static-method", "private-static-method", "public-instance-method", "protected-instance-method", "private-instance-method",
|
|
1312
1390
|
// "public-abstract-method", "protected-abstract-method"]
|
|
1313
1391
|
]
|
|
1314
1392
|
```
|
|
@@ -1325,7 +1403,7 @@ It is possible to group fields by their `readonly` modifiers.
|
|
|
1325
1403
|
|
|
1326
1404
|
// Fields
|
|
1327
1405
|
"readonly-field", // = ["public-static-readonly-field", "protected-static-readonly-field", "private-static-readonly-field", "public-instance-readonly-field", "protected-instance-readonly-field", "private-instance-readonly-field", "public-abstract-readonly-field", "protected-abstract-readonly-field"]
|
|
1328
|
-
"field" // = ["public-static-field", "protected-static-field", "private-static-field", "public-instance-field", "protected-instance-field", "private-instance-field", "public-abstract-field", "protected-abstract-field"]
|
|
1406
|
+
"field", // = ["public-static-field", "protected-static-field", "private-static-field", "public-instance-field", "protected-instance-field", "private-instance-field", "public-abstract-field", "protected-abstract-field"]
|
|
1329
1407
|
]
|
|
1330
1408
|
```
|
|
1331
1409
|
|
|
@@ -1351,7 +1429,7 @@ It is also possible to group different member types at the same rank.
|
|
|
1351
1429
|
["get", "set"],
|
|
1352
1430
|
|
|
1353
1431
|
// Methods
|
|
1354
|
-
"method"
|
|
1432
|
+
"method",
|
|
1355
1433
|
]
|
|
1356
1434
|
```
|
|
1357
1435
|
|