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
|
@@ -21,7 +21,7 @@ Uninitialized properties without annotations leave property type intent unclear.
|
|
|
21
21
|
|
|
22
22
|
```ts
|
|
23
23
|
class C {
|
|
24
|
-
|
|
24
|
+
value;
|
|
25
25
|
}
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@ class C {
|
|
|
29
29
|
|
|
30
30
|
```ts
|
|
31
31
|
class C {
|
|
32
|
-
|
|
32
|
+
value: string;
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -48,11 +48,11 @@ This rule has no options.
|
|
|
48
48
|
|
|
49
49
|
```ts
|
|
50
50
|
class User {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
name = "anonymous";
|
|
52
|
+
// ✅ valid: initializer provides type
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
role;
|
|
55
|
+
// ❌ reported: no initializer and no annotation
|
|
56
56
|
}
|
|
57
57
|
```
|
|
58
58
|
|
|
@@ -62,12 +62,12 @@ class User {
|
|
|
62
62
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
63
63
|
|
|
64
64
|
export default [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
{
|
|
66
|
+
plugins: { "etc-misc": etcMisc },
|
|
67
|
+
rules: {
|
|
68
|
+
"etc-misc/typescript/require-prop-type-annotation": "error",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
71
|
];
|
|
72
72
|
```
|
|
73
73
|
|
|
@@ -28,11 +28,11 @@ mutation through references that are passed around the codebase.
|
|
|
28
28
|
|
|
29
29
|
```ts
|
|
30
30
|
interface Config {
|
|
31
|
-
|
|
31
|
+
values: string[];
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
type ApiConfig = {
|
|
35
|
-
|
|
35
|
+
values: Array<string> | null;
|
|
36
36
|
};
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -40,11 +40,11 @@ type ApiConfig = {
|
|
|
40
40
|
|
|
41
41
|
```ts
|
|
42
42
|
interface Config {
|
|
43
|
-
|
|
43
|
+
values: readonly string[];
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
type ApiConfig = {
|
|
47
|
-
|
|
47
|
+
values: ReadonlyArray<string> | null;
|
|
48
48
|
};
|
|
49
49
|
```
|
|
50
50
|
|
|
@@ -64,12 +64,12 @@ This rule has no options.
|
|
|
64
64
|
|
|
65
65
|
```ts
|
|
66
66
|
interface Config {
|
|
67
|
-
|
|
67
|
+
values: Promise<string[]>;
|
|
68
68
|
}
|
|
69
69
|
// ✅ valid (nested generic type is out of scope)
|
|
70
70
|
|
|
71
71
|
type Settings = {
|
|
72
|
-
|
|
72
|
+
values: { nested: string[] };
|
|
73
73
|
};
|
|
74
74
|
// ✅ valid (nested property type is out of scope)
|
|
75
75
|
```
|
|
@@ -80,12 +80,12 @@ type Settings = {
|
|
|
80
80
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
81
81
|
|
|
82
82
|
export default [
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
{
|
|
84
|
+
plugins: { "etc-misc": etcMisc },
|
|
85
|
+
rules: {
|
|
86
|
+
"etc-misc/typescript/require-readonly-array-property-type": "error",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
89
|
];
|
|
90
90
|
```
|
|
91
91
|
|
|
@@ -27,13 +27,13 @@ immutability to consumers and prevents accidental mutation at call sites.
|
|
|
27
27
|
|
|
28
28
|
```ts
|
|
29
29
|
function getNames(): string[] {
|
|
30
|
-
|
|
30
|
+
return [];
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
type PairFactory = () => [string, number];
|
|
34
34
|
|
|
35
35
|
interface Api {
|
|
36
|
-
|
|
36
|
+
run(): Array<string>;
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -41,13 +41,13 @@ interface Api {
|
|
|
41
41
|
|
|
42
42
|
```ts
|
|
43
43
|
function getNames(): readonly string[] {
|
|
44
|
-
|
|
44
|
+
return [];
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
type PairFactory = () => readonly [string, number];
|
|
48
48
|
|
|
49
49
|
interface Api {
|
|
50
|
-
|
|
50
|
+
run(): ReadonlyArray<string>;
|
|
51
51
|
}
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -71,7 +71,7 @@ type Resolver = () => readonly string[] | null;
|
|
|
71
71
|
// ✅ valid
|
|
72
72
|
|
|
73
73
|
function getConfig(): { values: string[] } {
|
|
74
|
-
|
|
74
|
+
return { values: [] };
|
|
75
75
|
}
|
|
76
76
|
// ✅ valid (nested property type is out of scope)
|
|
77
77
|
```
|
|
@@ -82,12 +82,12 @@ function getConfig(): { values: string[] } {
|
|
|
82
82
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
83
83
|
|
|
84
84
|
export default [
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
{
|
|
86
|
+
plugins: { "etc-misc": etcMisc },
|
|
87
|
+
rules: {
|
|
88
|
+
"etc-misc/typescript/require-readonly-array-return-type": "error",
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
91
|
];
|
|
92
92
|
```
|
|
93
93
|
|
|
@@ -71,12 +71,12 @@ type Config = { values: string[] };
|
|
|
71
71
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
72
72
|
|
|
73
73
|
export default [
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
{
|
|
75
|
+
plugins: { "etc-misc": etcMisc },
|
|
76
|
+
rules: {
|
|
77
|
+
"etc-misc/typescript/require-readonly-array-type-alias": "error",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
80
|
];
|
|
81
81
|
```
|
|
82
82
|
|
|
@@ -29,7 +29,7 @@ function loadIndex(index: Map<string, number>): void {}
|
|
|
29
29
|
const resolver = (index: Map<string, number> | null) => index;
|
|
30
30
|
|
|
31
31
|
class Registry {
|
|
32
|
-
|
|
32
|
+
constructor(private readonly table: Map<string, string>) {}
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -41,7 +41,7 @@ function loadIndex(index: ReadonlyMap<string, number>): void {}
|
|
|
41
41
|
const resolver = (index: ReadonlyMap<string, number> | null) => index;
|
|
42
42
|
|
|
43
43
|
class Registry {
|
|
44
|
-
|
|
44
|
+
constructor(private readonly table: ReadonlyMap<string, string>) {}
|
|
45
45
|
}
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -69,12 +69,12 @@ function configure(index?: ReadonlyMap<string, number>): void {}
|
|
|
69
69
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
70
70
|
|
|
71
71
|
export default [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
{
|
|
73
|
+
plugins: { "etc-misc": etcMisc },
|
|
74
|
+
rules: {
|
|
75
|
+
"etc-misc/typescript/require-readonly-map-parameter-type": "error",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
78
|
];
|
|
79
79
|
```
|
|
80
80
|
|
|
@@ -91,7 +91,7 @@ already enforce a broader readonly parameter policy via type-aware linting.
|
|
|
91
91
|
|
|
92
92
|
## Further reading
|
|
93
93
|
|
|
94
|
-
- [TypeScript: ReadonlyMap
|
|
94
|
+
- [TypeScript: ReadonlyMap\<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
95
95
|
|
|
96
96
|
## Adoption resources
|
|
97
97
|
|
|
@@ -24,11 +24,11 @@ and helps avoid accidental mutation through shared map-like data.
|
|
|
24
24
|
|
|
25
25
|
```ts
|
|
26
26
|
interface Config {
|
|
27
|
-
|
|
27
|
+
lookup: Map<string, number>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
type ApiConfig = {
|
|
31
|
-
|
|
31
|
+
lookup: Map<string, number> | null;
|
|
32
32
|
};
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -36,11 +36,11 @@ type ApiConfig = {
|
|
|
36
36
|
|
|
37
37
|
```ts
|
|
38
38
|
interface Config {
|
|
39
|
-
|
|
39
|
+
lookup: ReadonlyMap<string, number>;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
type ApiConfig = {
|
|
43
|
-
|
|
43
|
+
lookup: ReadonlyMap<string, number> | null;
|
|
44
44
|
};
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -56,12 +56,12 @@ This rule is autofixable and also provides suggestions.
|
|
|
56
56
|
|
|
57
57
|
```ts
|
|
58
58
|
interface Config {
|
|
59
|
-
|
|
59
|
+
lookup: Promise<Map<string, number>>;
|
|
60
60
|
}
|
|
61
61
|
// ✅ valid (nested generic type is out of scope)
|
|
62
62
|
|
|
63
63
|
type Settings = {
|
|
64
|
-
|
|
64
|
+
lookup: { nested: Map<string, number> };
|
|
65
65
|
};
|
|
66
66
|
// ✅ valid (nested property type is out of scope)
|
|
67
67
|
```
|
|
@@ -72,12 +72,12 @@ type Settings = {
|
|
|
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/typescript/require-readonly-map-property-type": "error",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
81
|
];
|
|
82
82
|
```
|
|
83
83
|
|
|
@@ -95,7 +95,7 @@ constraints.
|
|
|
95
95
|
|
|
96
96
|
## Further reading
|
|
97
97
|
|
|
98
|
-
- [TypeScript: ReadonlyMap
|
|
98
|
+
- [TypeScript: ReadonlyMap\<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
99
99
|
|
|
100
100
|
## Adoption resources
|
|
101
101
|
|
|
@@ -23,13 +23,13 @@ non-mutating intent to callers and reduces accidental mutation of shared maps.
|
|
|
23
23
|
|
|
24
24
|
```ts
|
|
25
25
|
function buildLookup(): Map<string, number> {
|
|
26
|
-
|
|
26
|
+
return new Map();
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
type Resolver = () => Map<string, string> | null;
|
|
30
30
|
|
|
31
31
|
interface API {
|
|
32
|
-
|
|
32
|
+
run(): Map<string, string>;
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -37,13 +37,13 @@ interface API {
|
|
|
37
37
|
|
|
38
38
|
```ts
|
|
39
39
|
function buildLookup(): ReadonlyMap<string, number> {
|
|
40
|
-
|
|
40
|
+
return new Map();
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
type Resolver = () => ReadonlyMap<string, string> | null;
|
|
44
44
|
|
|
45
45
|
interface API {
|
|
46
|
-
|
|
46
|
+
run(): ReadonlyMap<string, string>;
|
|
47
47
|
}
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -59,12 +59,12 @@ This rule is autofixable and also provides suggestions.
|
|
|
59
59
|
|
|
60
60
|
```ts
|
|
61
61
|
function buildConfig(): Promise<Map<string, string>> {
|
|
62
|
-
|
|
62
|
+
return Promise.resolve(new Map());
|
|
63
63
|
}
|
|
64
64
|
// ✅ valid (nested generic type is out of scope)
|
|
65
65
|
|
|
66
66
|
function buildState(): { values: Map<string, string> } {
|
|
67
|
-
|
|
67
|
+
return { values: new Map() };
|
|
68
68
|
}
|
|
69
69
|
// ✅ valid (nested object-property type is out of scope)
|
|
70
70
|
```
|
|
@@ -75,12 +75,12 @@ function buildState(): { values: Map<string, string> } {
|
|
|
75
75
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
76
76
|
|
|
77
77
|
export default [
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
{
|
|
79
|
+
plugins: { "etc-misc": etcMisc },
|
|
80
|
+
rules: {
|
|
81
|
+
"etc-misc/typescript/require-readonly-map-return-type": "error",
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
84
|
];
|
|
85
85
|
```
|
|
86
86
|
|
|
@@ -97,7 +97,7 @@ types or if you already enforce broader readonly type policy at the same scope.
|
|
|
97
97
|
|
|
98
98
|
## Further reading
|
|
99
99
|
|
|
100
|
-
- [TypeScript: ReadonlyMap
|
|
100
|
+
- [TypeScript: ReadonlyMap\<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
101
101
|
|
|
102
102
|
## Adoption resources
|
|
103
103
|
|
|
@@ -62,12 +62,12 @@ type Config = { lookup: Map<string, number> };
|
|
|
62
62
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
63
63
|
|
|
64
64
|
export default [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
{
|
|
66
|
+
plugins: { "etc-misc": etcMisc },
|
|
67
|
+
rules: {
|
|
68
|
+
"etc-misc/typescript/require-readonly-map-type-alias": "error",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
71
|
];
|
|
72
72
|
```
|
|
73
73
|
|
|
@@ -84,7 +84,7 @@ you already enforce immutability through a broader rule strategy.
|
|
|
84
84
|
|
|
85
85
|
## Further reading
|
|
86
86
|
|
|
87
|
-
- [TypeScript: ReadonlyMap
|
|
87
|
+
- [TypeScript: ReadonlyMap\<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
88
88
|
|
|
89
89
|
## Adoption resources
|
|
90
90
|
|
|
@@ -30,7 +30,7 @@ function loadLookup(lookup: Record<string, string>): void {}
|
|
|
30
30
|
const resolver = (lookup: Record<string, string> | null) => lookup;
|
|
31
31
|
|
|
32
32
|
class Registry {
|
|
33
|
-
|
|
33
|
+
constructor(private readonly lookup: Record<string, string>) {}
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ function loadLookup(lookup: Readonly<Record<string, string>>): void {}
|
|
|
42
42
|
const resolver = (lookup: Readonly<Record<string, string>> | null) => lookup;
|
|
43
43
|
|
|
44
44
|
class Registry {
|
|
45
|
-
|
|
45
|
+
constructor(private readonly lookup: Readonly<Record<string, string>>) {}
|
|
46
46
|
}
|
|
47
47
|
```
|
|
48
48
|
|
|
@@ -70,12 +70,12 @@ function configure(lookup?: Readonly<Record<string, string>>): void {}
|
|
|
70
70
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
71
71
|
|
|
72
72
|
export default [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
{
|
|
74
|
+
plugins: { "etc-misc": etcMisc },
|
|
75
|
+
rules: {
|
|
76
|
+
"etc-misc/typescript/require-readonly-record-parameter-type": "error",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
79
|
];
|
|
80
80
|
```
|
|
81
81
|
|
|
@@ -24,11 +24,11 @@ intent and helps avoid accidental mutation through shared dictionary-like data.
|
|
|
24
24
|
|
|
25
25
|
```ts
|
|
26
26
|
interface Config {
|
|
27
|
-
|
|
27
|
+
lookup: Record<string, number>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
type ApiConfig = {
|
|
31
|
-
|
|
31
|
+
lookup: Record<string, number> | null;
|
|
32
32
|
};
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -36,11 +36,11 @@ type ApiConfig = {
|
|
|
36
36
|
|
|
37
37
|
```ts
|
|
38
38
|
interface Config {
|
|
39
|
-
|
|
39
|
+
lookup: Readonly<Record<string, number>>;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
type ApiConfig = {
|
|
43
|
-
|
|
43
|
+
lookup: Readonly<Record<string, number>> | null;
|
|
44
44
|
};
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -56,12 +56,12 @@ This rule is autofixable and also provides suggestions.
|
|
|
56
56
|
|
|
57
57
|
```ts
|
|
58
58
|
interface Config {
|
|
59
|
-
|
|
59
|
+
lookup: Promise<Record<string, number>>;
|
|
60
60
|
}
|
|
61
61
|
// ✅ valid (nested generic type is out of scope)
|
|
62
62
|
|
|
63
63
|
type Settings = {
|
|
64
|
-
|
|
64
|
+
lookup: { nested: Record<string, number> };
|
|
65
65
|
};
|
|
66
66
|
// ✅ valid (nested property type is out of scope)
|
|
67
67
|
```
|
|
@@ -72,12 +72,12 @@ type Settings = {
|
|
|
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/typescript/require-readonly-record-property-type": "error",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
81
|
];
|
|
82
82
|
```
|
|
83
83
|
|
|
@@ -25,13 +25,13 @@ shared dictionary-like objects.
|
|
|
25
25
|
|
|
26
26
|
```ts
|
|
27
27
|
function buildLookup(): Record<string, number> {
|
|
28
|
-
|
|
28
|
+
return {};
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
type Resolver = () => Record<string, string> | null;
|
|
32
32
|
|
|
33
33
|
interface API {
|
|
34
|
-
|
|
34
|
+
run(): Record<string, string>;
|
|
35
35
|
}
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -39,13 +39,13 @@ interface API {
|
|
|
39
39
|
|
|
40
40
|
```ts
|
|
41
41
|
function buildLookup(): Readonly<Record<string, number>> {
|
|
42
|
-
|
|
42
|
+
return {};
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
type Resolver = () => Readonly<Record<string, string>> | null;
|
|
46
46
|
|
|
47
47
|
interface API {
|
|
48
|
-
|
|
48
|
+
run(): Readonly<Record<string, string>>;
|
|
49
49
|
}
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -61,12 +61,12 @@ This rule is autofixable and also provides suggestions.
|
|
|
61
61
|
|
|
62
62
|
```ts
|
|
63
63
|
function buildConfig(): Promise<Record<string, string>> {
|
|
64
|
-
|
|
64
|
+
return Promise.resolve({});
|
|
65
65
|
}
|
|
66
66
|
// ✅ valid (nested generic type is out of scope)
|
|
67
67
|
|
|
68
68
|
function buildState(): { values: Record<string, string> } {
|
|
69
|
-
|
|
69
|
+
return { values: {} };
|
|
70
70
|
}
|
|
71
71
|
// ✅ valid (nested object-property type is out of scope)
|
|
72
72
|
```
|
|
@@ -77,12 +77,12 @@ function buildState(): { values: Record<string, string> } {
|
|
|
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/typescript/require-readonly-record-return-type": "error",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
86
|
];
|
|
87
87
|
```
|
|
88
88
|
|
|
@@ -63,12 +63,12 @@ type Config = { lookup: Record<string, number> };
|
|
|
63
63
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
64
64
|
|
|
65
65
|
export default [
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
{
|
|
67
|
+
plugins: { "etc-misc": etcMisc },
|
|
68
|
+
rules: {
|
|
69
|
+
"etc-misc/typescript/require-readonly-record-type-alias": "error",
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
72
|
];
|
|
73
73
|
```
|
|
74
74
|
|
|
@@ -29,7 +29,7 @@ function loadTags(tags: Set<string>): void {}
|
|
|
29
29
|
const resolver = (tags: Set<string> | null) => tags;
|
|
30
30
|
|
|
31
31
|
class Registry {
|
|
32
|
-
|
|
32
|
+
constructor(private readonly tags: Set<string>) {}
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -41,7 +41,7 @@ function loadTags(tags: ReadonlySet<string>): void {}
|
|
|
41
41
|
const resolver = (tags: ReadonlySet<string> | null) => tags;
|
|
42
42
|
|
|
43
43
|
class Registry {
|
|
44
|
-
|
|
44
|
+
constructor(private readonly tags: ReadonlySet<string>) {}
|
|
45
45
|
}
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -69,12 +69,12 @@ function configure(tags?: ReadonlySet<string>): void {}
|
|
|
69
69
|
import etcMisc from "eslint-plugin-etc-misc";
|
|
70
70
|
|
|
71
71
|
export default [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
{
|
|
73
|
+
plugins: { "etc-misc": etcMisc },
|
|
74
|
+
rules: {
|
|
75
|
+
"etc-misc/typescript/require-readonly-set-parameter-type": "error",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
78
|
];
|
|
79
79
|
```
|
|
80
80
|
|