eslint-plugin-etc-misc 1.0.2 → 1.0.3
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/CHANGELOG.md +2 -4
- package/README.md +197 -151
- package/dist/_internal/casing.d.ts.map +1 -1
- package/dist/_internal/casing.js +6 -6
- package/dist/_internal/casing.js.map +1 -1
- package/dist/_internal/create-external-rule.d.ts +2 -1
- package/dist/_internal/create-external-rule.d.ts.map +1 -1
- package/dist/_internal/create-external-rule.js +20 -22
- package/dist/_internal/create-external-rule.js.map +1 -1
- package/dist/_internal/create-import-pattern-rule.d.ts.map +1 -1
- package/dist/_internal/create-import-pattern-rule.js +2 -1
- package/dist/_internal/create-import-pattern-rule.js.map +1 -1
- package/dist/_internal/get-core-rule.d.ts +2 -1
- package/dist/_internal/get-core-rule.d.ts.map +1 -1
- package/dist/_internal/get-core-rule.js +2 -1
- package/dist/_internal/get-core-rule.js.map +1 -1
- package/dist/_internal/identifier-blocks.d.ts.map +1 -1
- package/dist/_internal/identifier-blocks.js +4 -4
- package/dist/_internal/identifier-blocks.js.map +1 -1
- package/dist/_internal/ignore-patterns.d.ts.map +1 -1
- package/dist/_internal/ignore-patterns.js +2 -1
- package/dist/_internal/ignore-patterns.js.map +1 -1
- package/dist/_internal/rule-creator.d.ts +2 -1
- package/dist/_internal/rule-creator.d.ts.map +1 -1
- package/dist/_internal/rule-creator.js.map +1 -1
- package/dist/_internal/rule-deprecation.d.ts +2 -1
- package/dist/_internal/rule-deprecation.d.ts.map +1 -1
- package/dist/_internal/rule-deprecation.js +3 -2
- package/dist/_internal/rule-deprecation.js.map +1 -1
- package/dist/_internal/symbol-usage.d.ts.map +1 -1
- package/dist/_internal/symbol-usage.js +11 -10
- package/dist/_internal/symbol-usage.js.map +1 -1
- package/dist/_internal/syntax-selectors.d.ts.map +1 -1
- package/dist/_internal/syntax-selectors.js +13 -8
- package/dist/_internal/syntax-selectors.js.map +1 -1
- package/dist/configs/all-strict.d.ts.map +1 -1
- package/dist/configs/all-strict.js +3 -2
- package/dist/configs/all-strict.js.map +1 -1
- package/dist/configs/all.d.ts.map +1 -1
- package/dist/configs/all.js +3 -2
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/minimal.d.ts +22 -0
- package/dist/configs/minimal.d.ts.map +1 -0
- package/dist/configs/minimal.js +22 -0
- package/dist/configs/minimal.js.map +1 -0
- package/dist/configs/strict-type-checked.d.ts.map +1 -1
- package/dist/configs/strict-type-checked.js +8 -10
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.d.ts.map +1 -1
- package/dist/configs/strict.js +3 -2
- package/dist/configs/strict.js.map +1 -1
- package/dist/configs.d.ts +2 -0
- package/dist/configs.d.ts.map +1 -1
- package/dist/configs.js +2 -0
- package/dist/configs.js.map +1 -1
- package/dist/rules/comment-spacing.d.ts.map +1 -1
- package/dist/rules/comment-spacing.js +3 -2
- package/dist/rules/comment-spacing.js.map +1 -1
- package/dist/rules/consistent-empty-lines.d.ts.map +1 -1
- package/dist/rules/consistent-empty-lines.js +3 -2
- package/dist/rules/consistent-empty-lines.js.map +1 -1
- package/dist/rules/consistent-filename.d.ts.map +1 -1
- package/dist/rules/consistent-filename.js +2 -1
- package/dist/rules/consistent-filename.js.map +1 -1
- package/dist/rules/consistent-import.d.ts.map +1 -1
- package/dist/rules/consistent-import.js +2 -1
- package/dist/rules/consistent-import.js.map +1 -1
- package/dist/rules/consistent-optional-props.d.ts.map +1 -1
- package/dist/rules/consistent-optional-props.js +6 -5
- package/dist/rules/consistent-optional-props.js.map +1 -1
- package/dist/rules/export-matching-filename-only.d.ts.map +1 -1
- package/dist/rules/export-matching-filename-only.js +2 -1
- package/dist/rules/export-matching-filename-only.js.map +1 -1
- package/dist/rules/match-filename.d.ts.map +1 -1
- package/dist/rules/match-filename.js +2 -1
- package/dist/rules/match-filename.js.map +1 -1
- package/dist/rules/max-identifier-blocks.d.ts.map +1 -1
- package/dist/rules/max-identifier-blocks.js +2 -4
- package/dist/rules/max-identifier-blocks.js.map +1 -1
- package/dist/rules/no-assign-mutated-array.d.ts.map +1 -1
- package/dist/rules/no-assign-mutated-array.js +2 -1
- package/dist/rules/no-assign-mutated-array.js.map +1 -1
- package/dist/rules/no-commented-out-code.d.ts.map +1 -1
- package/dist/rules/no-commented-out-code.js +22 -25
- package/dist/rules/no-commented-out-code.js.map +1 -1
- package/dist/rules/no-const-enum.d.ts.map +1 -1
- package/dist/rules/no-const-enum.js +2 -1
- package/dist/rules/no-const-enum.js.map +1 -1
- package/dist/rules/no-deprecated.d.ts.map +1 -1
- package/dist/rules/no-deprecated.js +4 -3
- package/dist/rules/no-deprecated.js.map +1 -1
- package/dist/rules/no-expression-empty-lines.d.ts.map +1 -1
- package/dist/rules/no-expression-empty-lines.js +3 -2
- package/dist/rules/no-expression-empty-lines.js.map +1 -1
- package/dist/rules/no-foreach.d.ts.map +1 -1
- package/dist/rules/no-foreach.js +2 -1
- package/dist/rules/no-foreach.js.map +1 -1
- package/dist/rules/no-implicit-any-catch.d.ts.map +1 -1
- package/dist/rules/no-implicit-any-catch.js +3 -2
- package/dist/rules/no-implicit-any-catch.js.map +1 -1
- package/dist/rules/no-internal.d.ts.map +1 -1
- package/dist/rules/no-internal.js +4 -3
- package/dist/rules/no-internal.js.map +1 -1
- package/dist/rules/no-language-mixing.d.ts.map +1 -1
- package/dist/rules/no-language-mixing.js +3 -2
- package/dist/rules/no-language-mixing.js.map +1 -1
- package/dist/rules/no-misused-generics.d.ts.map +1 -1
- package/dist/rules/no-misused-generics.js +5 -4
- package/dist/rules/no-misused-generics.js.map +1 -1
- package/dist/rules/no-negated-conditions.d.ts.map +1 -1
- package/dist/rules/no-negated-conditions.js +2 -1
- package/dist/rules/no-negated-conditions.js.map +1 -1
- package/dist/rules/no-param-reassign.d.ts.map +1 -1
- package/dist/rules/no-param-reassign.js +2 -1
- package/dist/rules/no-param-reassign.js.map +1 -1
- package/dist/rules/no-restricted-syntax.d.ts.map +1 -1
- package/dist/rules/no-restricted-syntax.js +2 -1
- package/dist/rules/no-restricted-syntax.js.map +1 -1
- package/dist/rules/no-self-import.d.ts.map +1 -1
- package/dist/rules/no-self-import.js +2 -1
- package/dist/rules/no-self-import.js.map +1 -1
- package/dist/rules/no-underscore-export.d.ts.map +1 -1
- package/dist/rules/no-underscore-export.js +3 -2
- package/dist/rules/no-underscore-export.js.map +1 -1
- package/dist/rules/no-unnecessary-break.d.ts.map +1 -1
- package/dist/rules/no-unnecessary-break.js +4 -3
- package/dist/rules/no-unnecessary-break.js.map +1 -1
- package/dist/rules/no-unnecessary-initialization.d.ts.map +1 -1
- package/dist/rules/no-unnecessary-initialization.js +3 -2
- package/dist/rules/no-unnecessary-initialization.js.map +1 -1
- package/dist/rules/no-unnecessary-template-literal.d.ts.map +1 -1
- package/dist/rules/no-unnecessary-template-literal.js +3 -2
- package/dist/rules/no-unnecessary-template-literal.js.map +1 -1
- package/dist/rules/only-export-name.d.ts.map +1 -1
- package/dist/rules/only-export-name.js +13 -10
- package/dist/rules/only-export-name.js.map +1 -1
- package/dist/rules/prefer-interface.d.ts.map +1 -1
- package/dist/rules/prefer-interface.js +5 -8
- package/dist/rules/prefer-interface.js.map +1 -1
- package/dist/rules/require-jsdoc.d.ts.map +1 -1
- package/dist/rules/require-jsdoc.js +7 -7
- package/dist/rules/require-jsdoc.js.map +1 -1
- package/dist/rules/require-syntax.d.ts.map +1 -1
- package/dist/rules/require-syntax.js +2 -1
- package/dist/rules/require-syntax.js.map +1 -1
- package/dist/rules/sort-array.d.ts.map +1 -1
- package/dist/rules/sort-array.js +8 -7
- package/dist/rules/sort-array.js.map +1 -1
- package/dist/rules/sort-class-members.d.ts.map +1 -1
- package/dist/rules/sort-class-members.js +2 -1
- package/dist/rules/sort-class-members.js.map +1 -1
- package/dist/rules/sort-export-specifiers.d.ts.map +1 -1
- package/dist/rules/sort-export-specifiers.js +6 -6
- package/dist/rules/sort-export-specifiers.js.map +1 -1
- package/dist/rules/sort-keys.d.ts.map +1 -1
- package/dist/rules/sort-keys.js +5 -5
- package/dist/rules/sort-keys.js.map +1 -1
- package/dist/rules/sort-top-comments.d.ts.map +1 -1
- package/dist/rules/sort-top-comments.js +7 -8
- package/dist/rules/sort-top-comments.js.map +1 -1
- package/dist/rules/switch-case-spacing.d.ts.map +1 -1
- package/dist/rules/switch-case-spacing.js +2 -2
- package/dist/rules/switch-case-spacing.js.map +1 -1
- package/dist/rules/template-literal-format.d.ts.map +1 -1
- package/dist/rules/template-literal-format.js +11 -13
- package/dist/rules/template-literal-format.js.map +1 -1
- package/dist/rules/throw-error.d.ts.map +1 -1
- package/dist/rules/throw-error.js +6 -4
- package/dist/rules/throw-error.js.map +1 -1
- package/dist/rules/typescript-array-callback-return-type.d.ts.map +1 -1
- package/dist/rules/typescript-array-callback-return-type.js +3 -2
- package/dist/rules/typescript-array-callback-return-type.js.map +1 -1
- package/dist/rules/typescript-class-methods-use-this.d.ts.map +1 -1
- package/dist/rules/typescript-class-methods-use-this.js +4 -3
- package/dist/rules/typescript-class-methods-use-this.js.map +1 -1
- package/dist/rules/typescript-no-boolean-literal-type.d.ts.map +1 -1
- package/dist/rules/typescript-no-boolean-literal-type.js +3 -2
- package/dist/rules/typescript-no-boolean-literal-type.js.map +1 -1
- package/dist/rules/typescript-no-inferrable-types.d.ts.map +1 -1
- package/dist/rules/typescript-no-inferrable-types.js +3 -2
- package/dist/rules/typescript-no-inferrable-types.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-const.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-const.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-const.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-let.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-let.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-let.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-optional.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-optional.js +6 -5
- package/dist/rules/typescript-no-redundant-undefined-optional.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js +6 -5
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-return-type.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-return-type.js +6 -5
- package/dist/rules/typescript-no-redundant-undefined-return-type.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-var.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-var.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-var.js.map +1 -1
- package/dist/rules/typescript-prefer-enum.d.ts.map +1 -1
- package/dist/rules/typescript-prefer-enum.js +6 -5
- package/dist/rules/typescript-prefer-enum.js.map +1 -1
- package/dist/rules/typescript-prefer-readonly-array.d.ts.map +1 -1
- package/dist/rules/typescript-prefer-readonly-array.js +3 -2
- package/dist/rules/typescript-prefer-readonly-array.js.map +1 -1
- package/dist/rules/typescript-prefer-readonly-property.d.ts.map +1 -1
- package/dist/rules/typescript-prefer-readonly-property.js +5 -4
- package/dist/rules/typescript-prefer-readonly-property.js.map +1 -1
- package/dist/rules/typescript-require-prop-type-annotation.d.ts.map +1 -1
- package/dist/rules/typescript-require-prop-type-annotation.js +5 -4
- package/dist/rules/typescript-require-prop-type-annotation.js.map +1 -1
- package/dist/rules/typescript-require-this-void.d.ts.map +1 -1
- package/dist/rules/typescript-require-this-void.js +2 -1
- package/dist/rules/typescript-require-this-void.js.map +1 -1
- package/dist/rules.d.ts +2 -1
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +14 -7
- package/dist/rules.js.map +1 -1
- package/docs/docusaurus/blog/2026-03-09-docs-site-online.md +3 -3
- package/docs/docusaurus/blog/2026-03-11-adr-driven-docs-roadmap.md +3 -3
- package/docs/docusaurus/docusaurus.config.ts +2 -3
- package/docs/docusaurus/sidebars.rules.ts +8 -0
- package/docs/docusaurus/site-docs/getting-started.md +2 -3
- package/docs/docusaurus/site-docs/guides/blog-post-backlog.md +12 -12
- package/docs/docusaurus/site-docs/guides/migration-from-etc-and-misc.md +7 -7
- package/docs/docusaurus/site-docs/intro.md +1 -1
- package/docs/rules/array-type.md +6 -6
- package/docs/rules/class-match-filename.md +6 -6
- package/docs/rules/comment-spacing.md +9 -9
- package/docs/rules/consistent-empty-lines.md +8 -9
- package/docs/rules/consistent-enum-members.md +17 -16
- package/docs/rules/consistent-filename.md +12 -10
- package/docs/rules/consistent-import.md +11 -11
- package/docs/rules/consistent-optional-props.md +12 -12
- package/docs/rules/consistent-source-extension.md +6 -6
- package/docs/rules/consistent-symbol-description.md +6 -6
- package/docs/rules/default-case.md +20 -20
- package/docs/rules/disallow-import.md +11 -9
- package/docs/rules/export-matching-filename-only.md +12 -10
- package/docs/rules/getting-started.md +7 -6
- package/docs/rules/match-filename.md +13 -13
- package/docs/rules/max-identifier-blocks.md +7 -7
- package/docs/rules/no-assign-mutated-array.md +31 -11
- package/docs/rules/no-at-sign-import.md +9 -9
- package/docs/rules/no-at-sign-internal-import.md +9 -9
- package/docs/rules/no-chain-coalescence-mixture.md +6 -6
- package/docs/rules/no-commented-out-code.md +12 -12
- package/docs/rules/no-const-enum.md +13 -13
- package/docs/rules/no-deprecated.md +26 -26
- package/docs/rules/no-enum.md +14 -14
- package/docs/rules/no-expression-empty-lines.md +12 -20
- package/docs/rules/no-foreach.md +14 -10
- package/docs/rules/no-implicit-any-catch.md +31 -31
- package/docs/rules/no-index-import.md +9 -9
- package/docs/rules/no-internal-modules.md +9 -9
- package/docs/rules/no-internal.md +26 -26
- package/docs/rules/no-language-mixing.md +6 -6
- package/docs/rules/no-misused-generics.md +8 -8
- package/docs/rules/no-mixed-enums.md +14 -14
- package/docs/rules/no-negated-conditions.md +16 -12
- package/docs/rules/no-nodejs-modules.md +9 -9
- package/docs/rules/no-param-reassign.md +19 -19
- package/docs/rules/no-relative-parent-import.md +12 -12
- package/docs/rules/no-restricted-syntax.md +24 -23
- package/docs/rules/no-secret.md +6 -6
- package/docs/rules/no-self-import.md +6 -6
- package/docs/rules/no-shadow.md +12 -12
- package/docs/rules/no-sibling-import.md +8 -8
- package/docs/rules/no-single-line-comment.md +10 -10
- package/docs/rules/no-t.md +15 -15
- package/docs/rules/no-underscore-export.md +6 -6
- package/docs/rules/no-unnecessary-as-const.md +8 -8
- package/docs/rules/no-unnecessary-break.md +19 -19
- package/docs/rules/no-unnecessary-initialization.md +8 -8
- package/docs/rules/no-unnecessary-template-literal.md +7 -7
- package/docs/rules/no-unused-disable.md +6 -6
- package/docs/rules/no-useless-generics.md +10 -10
- package/docs/rules/no-value-tostring.md +6 -6
- package/docs/rules/no-writeonly.md +26 -26
- package/docs/rules/object-format.md +16 -16
- package/docs/rules/only-export-name.md +10 -8
- package/docs/rules/overview.md +8 -7
- package/docs/rules/prefer-arrow-function-property.md +24 -24
- package/docs/rules/prefer-const-require.md +8 -8
- package/docs/rules/prefer-includes.md +17 -8
- package/docs/rules/prefer-interface.md +24 -24
- package/docs/rules/prefer-less-than.md +10 -10
- package/docs/rules/prefer-object-has-own.md +6 -6
- package/docs/rules/prefer-only-export.md +6 -6
- package/docs/rules/presets/all-strict.md +1 -1
- package/docs/rules/presets/minimal.md +44 -0
- package/docs/rules/presets/recommended.md +3 -1
- package/docs/rules/presets/strict-type-checked.md +1 -1
- package/docs/rules/presets/strict.md +1 -1
- package/docs/rules/require-jsdoc.md +29 -17
- package/docs/rules/require-syntax.md +23 -19
- package/docs/rules/restrict-identifier-characters.md +6 -6
- package/docs/rules/sort-array.md +16 -8
- package/docs/rules/sort-call-signature.md +16 -16
- package/docs/rules/sort-class-members.md +14 -14
- package/docs/rules/sort-construct-signature.md +14 -14
- package/docs/rules/sort-export-specifiers.md +6 -6
- package/docs/rules/sort-keys.md +15 -15
- package/docs/rules/sort-top-comments.md +6 -6
- package/docs/rules/switch-case-spacing.md +20 -18
- package/docs/rules/template-literal-format.md +6 -6
- package/docs/rules/throw-error.md +6 -6
- package/docs/rules/throw-new-error.md +6 -6
- package/docs/rules/typescript-array-callback-return-type.md +22 -10
- package/docs/rules/typescript-class-methods-use-this.md +21 -21
- package/docs/rules/typescript-consistent-array-type-name.md +6 -6
- package/docs/rules/typescript-define-function-in-one-statement.md +6 -6
- package/docs/rules/typescript-exhaustive-switch.md +20 -20
- package/docs/rules/typescript-no-boolean-literal-type.md +10 -10
- package/docs/rules/typescript-no-complex-declarator-type.md +15 -15
- package/docs/rules/typescript-no-complex-return-type.md +9 -9
- package/docs/rules/typescript-no-empty-interfaces.md +7 -7
- package/docs/rules/typescript-no-inferrable-types.md +10 -10
- package/docs/rules/typescript-no-multi-type-tuples.md +6 -6
- package/docs/rules/typescript-no-never.md +8 -8
- package/docs/rules/typescript-no-redundant-undefined-const.md +6 -6
- package/docs/rules/typescript-no-redundant-undefined-default-parameter.md +11 -11
- package/docs/rules/typescript-no-redundant-undefined-let.md +6 -6
- package/docs/rules/typescript-no-redundant-undefined-optional.md +9 -9
- package/docs/rules/typescript-no-redundant-undefined-promise-return-type.md +17 -17
- package/docs/rules/typescript-no-redundant-undefined-readonly-property.md +14 -14
- package/docs/rules/typescript-no-redundant-undefined-return-type.md +16 -16
- package/docs/rules/typescript-no-redundant-undefined-var.md +6 -6
- package/docs/rules/typescript-no-restricted-syntax.md +10 -10
- package/docs/rules/typescript-no-unsafe-object-assign.md +6 -6
- package/docs/rules/typescript-no-unsafe-object-assignment.md +6 -6
- package/docs/rules/typescript-prefer-array-type-alias.md +6 -6
- package/docs/rules/typescript-prefer-class-method.md +9 -9
- package/docs/rules/typescript-prefer-enum.md +11 -11
- package/docs/rules/typescript-prefer-named-tuple-members.md +6 -6
- package/docs/rules/typescript-prefer-readonly-array-parameter.md +8 -8
- package/docs/rules/typescript-prefer-readonly-array.md +6 -6
- package/docs/rules/typescript-prefer-readonly-index-signature.md +12 -12
- package/docs/rules/typescript-prefer-readonly-map.md +6 -6
- package/docs/rules/typescript-prefer-readonly-property.md +10 -10
- package/docs/rules/typescript-prefer-readonly-record.md +9 -7
- package/docs/rules/typescript-prefer-readonly-set.md +6 -6
- package/docs/rules/typescript-require-prop-type-annotation.md +12 -12
- package/docs/rules/typescript-require-readonly-array-property-type.md +12 -12
- package/docs/rules/typescript-require-readonly-array-return-type.md +11 -11
- package/docs/rules/typescript-require-readonly-array-type-alias.md +6 -6
- package/docs/rules/typescript-require-readonly-map-parameter-type.md +9 -9
- package/docs/rules/typescript-require-readonly-map-property-type.md +13 -13
- package/docs/rules/typescript-require-readonly-map-return-type.md +13 -13
- package/docs/rules/typescript-require-readonly-map-type-alias.md +7 -7
- package/docs/rules/typescript-require-readonly-record-parameter-type.md +8 -8
- package/docs/rules/typescript-require-readonly-record-property-type.md +12 -12
- package/docs/rules/typescript-require-readonly-record-return-type.md +12 -12
- package/docs/rules/typescript-require-readonly-record-type-alias.md +6 -6
- package/docs/rules/typescript-require-readonly-set-parameter-type.md +8 -8
- package/docs/rules/typescript-require-readonly-set-property-type.md +12 -12
- package/docs/rules/typescript-require-readonly-set-return-type.md +12 -12
- package/docs/rules/typescript-require-readonly-set-type-alias.md +6 -6
- package/docs/rules/typescript-require-this-void.md +14 -14
- package/docs/rules/underscore-internal.md +10 -10
- package/docs/rules/unused-internal-properties.md +14 -14
- package/docs/rules/uppercase-iife.md +8 -8
- package/docs/rules/words.md +6 -6
- package/package.json +19 -13
|
@@ -18,9 +18,9 @@ Write-only properties hide state flow and make object behavior harder to debug.
|
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
20
|
const state = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
set value(next: number) {
|
|
22
|
+
this._value = next;
|
|
23
|
+
},
|
|
24
24
|
};
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -28,13 +28,13 @@ const state = {
|
|
|
28
28
|
|
|
29
29
|
```ts
|
|
30
30
|
const state = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
_value: 0,
|
|
32
|
+
get value() {
|
|
33
|
+
return this._value;
|
|
34
|
+
},
|
|
35
|
+
set value(next: number) {
|
|
36
|
+
this._value = next;
|
|
37
|
+
},
|
|
38
38
|
};
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -46,22 +46,22 @@ This rule forwards options and behavior to ESLint core `accessor-pairs`.
|
|
|
46
46
|
|
|
47
47
|
```ts
|
|
48
48
|
class Box {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
set value(next: number) {
|
|
50
|
+
this._value = next;
|
|
51
|
+
}
|
|
52
52
|
}
|
|
53
53
|
// ❌ reported
|
|
54
54
|
|
|
55
55
|
class BoxFixed {
|
|
56
|
-
|
|
56
|
+
_value = 0;
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
get value() {
|
|
59
|
+
return this._value;
|
|
60
|
+
}
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
set value(next: number) {
|
|
63
|
+
this._value = next;
|
|
64
|
+
}
|
|
65
65
|
}
|
|
66
66
|
// ✅ valid
|
|
67
67
|
```
|
|
@@ -72,12 +72,12 @@ class BoxFixed {
|
|
|
72
72
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
73
73
|
|
|
74
74
|
export default [
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
{
|
|
76
|
+
plugins: { "etc-misc": etcMisc },
|
|
77
|
+
rules: {
|
|
78
|
+
"etc-misc/no-writeonly": "error",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
81
|
];
|
|
82
82
|
```
|
|
83
83
|
|
|
@@ -12,7 +12,7 @@ enforces single-line or multi-line formatting based on property count.
|
|
|
12
12
|
For each object literal with at least two properties:
|
|
13
13
|
|
|
14
14
|
- if property count is less than or equal to `maxProperties`, the object must be
|
|
15
|
-
on a single line;
|
|
15
|
+
on a single line;
|
|
16
16
|
- otherwise, the object must span multiple lines.
|
|
17
17
|
|
|
18
18
|
## Why this rule exists
|
|
@@ -33,8 +33,8 @@ const point = { x: 1, y: 2 };
|
|
|
33
33
|
```ts
|
|
34
34
|
// default maxProperties: 1
|
|
35
35
|
const point = {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
x: 1,
|
|
37
|
+
y: 2,
|
|
38
38
|
};
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -54,9 +54,9 @@ before enforcing as `error`.
|
|
|
54
54
|
|
|
55
55
|
```ts
|
|
56
56
|
type Options = [
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
{
|
|
58
|
+
maxProperties?: number; // default: 1
|
|
59
|
+
},
|
|
60
60
|
];
|
|
61
61
|
```
|
|
62
62
|
|
|
@@ -65,7 +65,7 @@ type Options = [
|
|
|
65
65
|
### Default configuration
|
|
66
66
|
|
|
67
67
|
```ts
|
|
68
|
-
[{ maxProperties: 1 }]
|
|
68
|
+
[{ maxProperties: 1 }];
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
## Additional examples
|
|
@@ -75,9 +75,9 @@ const pair = { left: 1, right: 2 };
|
|
|
75
75
|
// ✅ valid when configured with { maxProperties: 2 }
|
|
76
76
|
|
|
77
77
|
const tupleLike = {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
first: 1,
|
|
79
|
+
second: 2,
|
|
80
|
+
third: 3,
|
|
81
81
|
};
|
|
82
82
|
// ✅ required when maxProperties is 2
|
|
83
83
|
```
|
|
@@ -88,12 +88,12 @@ const tupleLike = {
|
|
|
88
88
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
89
89
|
|
|
90
90
|
export default [
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
{
|
|
92
|
+
plugins: { "etc-misc": etcMisc },
|
|
93
|
+
rules: {
|
|
94
|
+
"etc-misc/object-format": "error",
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
97
|
];
|
|
98
98
|
```
|
|
99
99
|
|
|
@@ -46,7 +46,9 @@ export const value = 1;
|
|
|
46
46
|
with options:
|
|
47
47
|
|
|
48
48
|
```ts
|
|
49
|
-
{
|
|
49
|
+
{
|
|
50
|
+
names: ["value"];
|
|
51
|
+
}
|
|
50
52
|
```
|
|
51
53
|
|
|
52
54
|
## Behavior and migration notes
|
|
@@ -60,7 +62,7 @@ explicitly allowed.
|
|
|
60
62
|
|
|
61
63
|
```ts
|
|
62
64
|
type Options = {
|
|
63
|
-
|
|
65
|
+
names?: string[];
|
|
64
66
|
};
|
|
65
67
|
```
|
|
66
68
|
|
|
@@ -91,12 +93,12 @@ export { buildClient as client };
|
|
|
91
93
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
92
94
|
|
|
93
95
|
export default [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
{
|
|
97
|
+
plugins: { "etc-misc": etcMisc },
|
|
98
|
+
rules: {
|
|
99
|
+
"etc-misc/only-export-name": ["error", { names: ["value"] }],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
100
102
|
];
|
|
101
103
|
```
|
|
102
104
|
|
package/docs/rules/overview.md
CHANGED
|
@@ -31,13 +31,14 @@ That is enough for TypeScript files (`**/*.{ts,tsx,mts,cts}`).
|
|
|
31
31
|
|
|
32
32
|
## Presets
|
|
33
33
|
|
|
34
|
-
| Preset
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
34
|
+
| Preset | Purpose |
|
|
35
|
+
| -------------------------------------- | --------------------------------------------------------------------------- |
|
|
36
|
+
| 🟢 `etcMisc.configs.minimal` | `recommended` minus the `typescript/prefer-readonly*` rules. |
|
|
37
|
+
| 🟡 `etcMisc.configs.recommended` | Balanced starter preset for most projects. |
|
|
38
|
+
| 🟠 `etcMisc.configs.strict` | Same rule set as `recommended`, but every enabled rule is `error`. |
|
|
39
|
+
| 🔵 `etcMisc.configs.strictTypeChecked` | `strict` plus additional non-deprecated type-aware rules at `error`. |
|
|
40
|
+
| 🔴 `etcMisc.configs.allStrict` | Every non-deprecated plugin rule at `error` (deprecated rules stay `warn`). |
|
|
41
|
+
| 🟣 `etcMisc.configs.all` | Enables every rule exported by the plugin with metadata-derived severities. |
|
|
41
42
|
|
|
42
43
|
## Next steps
|
|
43
44
|
|
|
@@ -23,12 +23,12 @@ low-ambiguity style.
|
|
|
23
23
|
|
|
24
24
|
```ts
|
|
25
25
|
const handlers = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
onClick() {
|
|
27
|
+
return "clicked";
|
|
28
|
+
},
|
|
29
|
+
onHover: function () {
|
|
30
|
+
return "hovered";
|
|
31
|
+
},
|
|
32
32
|
};
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -36,11 +36,11 @@ const handlers = {
|
|
|
36
36
|
|
|
37
37
|
```ts
|
|
38
38
|
const handlers = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
onClick: () => "clicked",
|
|
40
|
+
onHover: () => "hovered",
|
|
41
|
+
withThis(this: void) {
|
|
42
|
+
return "ok";
|
|
43
|
+
},
|
|
44
44
|
};
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -56,17 +56,17 @@ uses method-style `this`, keep it as a method and annotate `this` explicitly.
|
|
|
56
56
|
|
|
57
57
|
```ts
|
|
58
58
|
const formatter = {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
prefix: "#",
|
|
60
|
+
format(this: { prefix: string }, value: number) {
|
|
61
|
+
return `${this.prefix}${value}`;
|
|
62
|
+
},
|
|
63
63
|
};
|
|
64
64
|
// ✅ valid: explicit `this` parameter is allowed by this rule
|
|
65
65
|
|
|
66
66
|
const formatter2 = {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
format(value: number) {
|
|
68
|
+
return String(value);
|
|
69
|
+
},
|
|
70
70
|
};
|
|
71
71
|
// ❌ reported
|
|
72
72
|
```
|
|
@@ -77,12 +77,12 @@ const formatter2 = {
|
|
|
77
77
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
78
78
|
|
|
79
79
|
export default [
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
{
|
|
81
|
+
plugins: { "etc-misc": etcMisc },
|
|
82
|
+
rules: {
|
|
83
|
+
"etc-misc/prefer-arrow-function-property": "error",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
86
|
];
|
|
87
87
|
```
|
|
88
88
|
|
|
@@ -22,7 +22,7 @@ makes migration toward ESM import style easier.
|
|
|
22
22
|
|
|
23
23
|
```ts
|
|
24
24
|
function loadPath() {
|
|
25
|
-
|
|
25
|
+
return require("node:path");
|
|
26
26
|
}
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -32,7 +32,7 @@ function loadPath() {
|
|
|
32
32
|
const path = require("node:path");
|
|
33
33
|
|
|
34
34
|
function loadPath() {
|
|
35
|
-
|
|
35
|
+
return path;
|
|
36
36
|
}
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -60,12 +60,12 @@ logger.info(os.platform());
|
|
|
60
60
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
61
61
|
|
|
62
62
|
export default [
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
{
|
|
64
|
+
plugins: { "etc-misc": etcMisc },
|
|
65
|
+
rules: {
|
|
66
|
+
"etc-misc/prefer-const-require": "error",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
69
|
];
|
|
70
70
|
```
|
|
71
71
|
|
|
@@ -19,13 +19,22 @@ comparisons.
|
|
|
19
19
|
## ❌ Incorrect
|
|
20
20
|
|
|
21
21
|
```ts
|
|
22
|
-
const hasValue =
|
|
22
|
+
const hasValue =
|
|
23
|
+
[
|
|
24
|
+
1,
|
|
25
|
+
2,
|
|
26
|
+
3,
|
|
27
|
+
].indexOf(2) !== -1;
|
|
23
28
|
```
|
|
24
29
|
|
|
25
30
|
## ✅ Correct
|
|
26
31
|
|
|
27
32
|
```ts
|
|
28
|
-
const hasValue = [
|
|
33
|
+
const hasValue = [
|
|
34
|
+
1,
|
|
35
|
+
2,
|
|
36
|
+
3,
|
|
37
|
+
].includes(2);
|
|
29
38
|
```
|
|
30
39
|
|
|
31
40
|
## Behavior and migration notes
|
|
@@ -53,12 +62,12 @@ const hasName2 = names.includes("alice");
|
|
|
53
62
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
54
63
|
|
|
55
64
|
export default [
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
{
|
|
66
|
+
plugins: { "etc-misc": etcMisc },
|
|
67
|
+
rules: {
|
|
68
|
+
"etc-misc/prefer-includes": "error",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
62
71
|
];
|
|
63
72
|
```
|
|
64
73
|
|
|
@@ -22,8 +22,8 @@ For interface-compatible shapes, interfaces can provide clearer extension patter
|
|
|
22
22
|
|
|
23
23
|
```ts
|
|
24
24
|
type Person = {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
name: string;
|
|
26
|
+
age: number;
|
|
27
27
|
};
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -35,14 +35,14 @@ type Comparator<T> = (left: T, right: T) => number;
|
|
|
35
35
|
|
|
36
36
|
```ts
|
|
37
37
|
interface Person {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
name: string;
|
|
39
|
+
age: number;
|
|
40
40
|
}
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
```ts
|
|
44
44
|
interface Comparator<T> {
|
|
45
|
-
|
|
45
|
+
(left: T, right: T): number;
|
|
46
46
|
}
|
|
47
47
|
```
|
|
48
48
|
|
|
@@ -59,17 +59,17 @@ Use instead: [`@typescript-eslint/consistent-type-definitions`](https://typescri
|
|
|
59
59
|
|
|
60
60
|
```ts
|
|
61
61
|
type Options = [
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
{
|
|
63
|
+
allowIntersection?: boolean;
|
|
64
|
+
allowLocal?: boolean;
|
|
65
|
+
}?,
|
|
66
66
|
];
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
### Default configuration
|
|
70
70
|
|
|
71
71
|
```ts
|
|
72
|
-
[{}]
|
|
72
|
+
[{}];
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
Effective behavior with defaults:
|
|
@@ -89,11 +89,11 @@ With `allowIntersection: false`:
|
|
|
89
89
|
|
|
90
90
|
```ts
|
|
91
91
|
interface Name {
|
|
92
|
-
|
|
92
|
+
name: string;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
interface Age {
|
|
96
|
-
|
|
96
|
+
age: number;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
type User = Name & Age;
|
|
@@ -103,11 +103,11 @@ is converted to:
|
|
|
103
103
|
|
|
104
104
|
```ts
|
|
105
105
|
interface Name {
|
|
106
|
-
|
|
106
|
+
name: string;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
interface Age {
|
|
110
|
-
|
|
110
|
+
age: number;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
interface User extends Name, Age {}
|
|
@@ -119,18 +119,18 @@ interface User extends Name, Age {}
|
|
|
119
119
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
120
120
|
|
|
121
121
|
export default [
|
|
122
|
+
{
|
|
123
|
+
plugins: { "etc-misc": etcMisc },
|
|
124
|
+
rules: {
|
|
125
|
+
"etc-misc/prefer-interface": [
|
|
126
|
+
"error",
|
|
122
127
|
{
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"etc-misc/prefer-interface": [
|
|
126
|
-
"error",
|
|
127
|
-
{
|
|
128
|
-
allowIntersection: false,
|
|
129
|
-
allowLocal: true,
|
|
130
|
-
},
|
|
131
|
-
],
|
|
132
|
-
},
|
|
128
|
+
allowIntersection: false,
|
|
129
|
+
allowLocal: true,
|
|
133
130
|
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
134
|
];
|
|
135
135
|
```
|
|
136
136
|
|
|
@@ -23,7 +23,7 @@ visually consistent across a codebase.
|
|
|
23
23
|
const isValid = value > min;
|
|
24
24
|
|
|
25
25
|
if (value >= min && value <= max) {
|
|
26
|
-
|
|
26
|
+
run();
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ if (value >= min && value <= max) {
|
|
|
33
33
|
const isValid = min < value;
|
|
34
34
|
|
|
35
35
|
if (min <= value && value <= max) {
|
|
36
|
-
|
|
36
|
+
run();
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -51,12 +51,12 @@ operator:
|
|
|
51
51
|
|
|
52
52
|
```ts
|
|
53
53
|
if (score >= threshold) {
|
|
54
|
-
|
|
54
|
+
pass();
|
|
55
55
|
}
|
|
56
56
|
// ❌ reported and auto-fixable to `threshold <= score`
|
|
57
57
|
|
|
58
58
|
if (threshold <= score) {
|
|
59
|
-
|
|
59
|
+
pass();
|
|
60
60
|
}
|
|
61
61
|
// ✅ valid
|
|
62
62
|
```
|
|
@@ -67,12 +67,12 @@ if (threshold <= score) {
|
|
|
67
67
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
68
68
|
|
|
69
69
|
export default [
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
{
|
|
71
|
+
plugins: { "etc-misc": etcMisc },
|
|
72
|
+
rules: {
|
|
73
|
+
"etc-misc/prefer-less-than": "error",
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
76
|
];
|
|
77
77
|
```
|
|
78
78
|
|
|
@@ -52,12 +52,12 @@ Object.hasOwn(config, "port");
|
|
|
52
52
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
53
53
|
|
|
54
54
|
export default [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
{
|
|
56
|
+
plugins: { "etc-misc": etcMisc },
|
|
57
|
+
rules: {
|
|
58
|
+
"etc-misc/prefer-object-has-own": "error",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
61
|
];
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -59,12 +59,12 @@ export default function main() {}
|
|
|
59
59
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
60
60
|
|
|
61
61
|
export default [
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
{
|
|
63
|
+
plugins: { "etc-misc": etcMisc },
|
|
64
|
+
rules: {
|
|
65
|
+
"etc-misc/prefer-only-export": "error",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
68
|
];
|
|
69
69
|
```
|
|
70
70
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Minimal preset
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# 🟢 Minimal
|
|
6
|
+
|
|
7
|
+
Use this preset when you want the `recommended` baseline without the
|
|
8
|
+
`typescript/prefer-readonly*` rules.
|
|
9
|
+
|
|
10
|
+
## Config key
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
etcMisc.configs.minimal;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Flat Config example
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
20
|
+
|
|
21
|
+
export default [etcMisc.configs.minimal];
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Rules in this preset
|
|
25
|
+
|
|
26
|
+
- [`etc-misc/consistent-optional-props`](../consistent-optional-props.md) (R008)
|
|
27
|
+
- [`etc-misc/no-assign-mutated-array`](../no-assign-mutated-array.md) (R016)
|
|
28
|
+
- [`etc-misc/no-const-enum`](../no-const-enum.md) (R021)
|
|
29
|
+
- [`etc-misc/no-implicit-any-catch`](../no-implicit-any-catch.md) (R026)
|
|
30
|
+
- [`etc-misc/no-internal`](../no-internal.md) (R028)
|
|
31
|
+
- [`etc-misc/no-t`](../no-t.md) (R043)
|
|
32
|
+
- [`etc-misc/no-unnecessary-as-const`](../no-unnecessary-as-const.md) (R045)
|
|
33
|
+
- [`etc-misc/no-unnecessary-break`](../no-unnecessary-break.md) (R046)
|
|
34
|
+
- [`etc-misc/no-unnecessary-initialization`](../no-unnecessary-initialization.md) (R047)
|
|
35
|
+
- [`etc-misc/no-unnecessary-template-literal`](../no-unnecessary-template-literal.md) (R048)
|
|
36
|
+
- [`etc-misc/throw-error`](../throw-error.md) (R074)
|
|
37
|
+
- [`etc-misc/typescript/no-boolean-literal-type`](../typescript-no-boolean-literal-type.md) (R085)
|
|
38
|
+
- [`etc-misc/typescript/require-readonly-array-return-type`](../typescript-require-readonly-array-return-type.md) (R116)
|
|
39
|
+
- [`etc-misc/typescript/require-this-void`](../typescript-require-this-void.md) (R130)
|
|
40
|
+
|
|
41
|
+
## Adoption guidance
|
|
42
|
+
|
|
43
|
+
Start here if you want a pragmatic baseline before adopting readonly-style
|
|
44
|
+
constraints from `recommended`.
|
|
@@ -9,7 +9,7 @@ Use this preset as the default onboarding path for most projects.
|
|
|
9
9
|
## Config key
|
|
10
10
|
|
|
11
11
|
```ts
|
|
12
|
-
etcMisc.configs.recommended
|
|
12
|
+
etcMisc.configs.recommended;
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Flat Config example
|
|
@@ -46,6 +46,8 @@ export default [etcMisc.configs.recommended];
|
|
|
46
46
|
|
|
47
47
|
## Adoption guidance
|
|
48
48
|
|
|
49
|
+
If you don’t want readonly preference rules yet, start with minimal. Otherwise, start here for a balanced baseline of correctness and maintainability rules. This preset is designed to be a long-term baseline, so it includes some rules that may be initially noisy but are worth fixing early for long-term benefits.
|
|
50
|
+
|
|
49
51
|
This preset now enables a wider "safe baseline" mix:
|
|
50
52
|
|
|
51
53
|
- strong correctness rules as `error`
|