eslint-plugin-tsdoc-require-2 1.0.6 → 1.0.8
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/README.md +111 -36
- package/dist/internal/require-tag-factory.cjs +58 -9
- package/dist/internal/require-tag-factory.d.ts +5 -2
- package/dist/internal/require-tag-factory.d.ts.map +1 -1
- package/dist/internal/require-tag-factory.js +58 -9
- package/dist/internal/require-tag-factory.js.map +1 -1
- package/dist/plugin.cjs +146 -17
- package/dist/plugin.d.ts +2 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +142 -16
- package/dist/plugin.js.map +1 -1
- package/dist/rules/require-tag-rules.cjs +121 -25
- package/dist/rules/require-tag-rules.d.ts +5 -30
- package/dist/rules/require-tag-rules.d.ts.map +1 -1
- package/dist/rules/require-tag-rules.js +93 -0
- package/dist/rules/require-tag-rules.js.map +1 -1
- package/dist/rules/require.cjs +59 -16
- package/dist/rules/require.d.ts +3 -1
- package/dist/rules/require.d.ts.map +1 -1
- package/dist/rules/require.js +59 -16
- package/dist/rules/require.js.map +1 -1
- package/dist/rules/required-tags/require-abstract.cjs +32 -0
- package/dist/rules/required-tags/require-abstract.d.ts +5 -0
- package/dist/rules/required-tags/require-abstract.d.ts.map +1 -0
- package/dist/rules/required-tags/require-abstract.js +30 -0
- package/dist/rules/required-tags/require-abstract.js.map +1 -0
- package/dist/rules/required-tags/require-alpha.cjs +0 -1
- package/dist/rules/required-tags/require-alpha.d.ts.map +1 -1
- package/dist/rules/required-tags/require-alpha.js +1 -2
- package/dist/rules/required-tags/require-alpha.js.map +1 -1
- package/dist/rules/required-tags/require-author.cjs +32 -0
- package/dist/rules/required-tags/require-author.d.ts +5 -0
- package/dist/rules/required-tags/require-author.d.ts.map +1 -0
- package/dist/rules/required-tags/require-author.js +30 -0
- package/dist/rules/required-tags/require-author.js.map +1 -0
- package/dist/rules/required-tags/require-beta.cjs +0 -1
- package/dist/rules/required-tags/require-beta.d.ts.map +1 -1
- package/dist/rules/required-tags/require-beta.js +1 -2
- package/dist/rules/required-tags/require-beta.js.map +1 -1
- package/dist/rules/required-tags/require-category.cjs +32 -0
- package/dist/rules/required-tags/require-category.d.ts +5 -0
- package/dist/rules/required-tags/require-category.d.ts.map +1 -0
- package/dist/rules/required-tags/require-category.js +30 -0
- package/dist/rules/required-tags/require-category.js.map +1 -0
- package/dist/rules/required-tags/require-class.cjs +32 -0
- package/dist/rules/required-tags/require-class.d.ts +5 -0
- package/dist/rules/required-tags/require-class.d.ts.map +1 -0
- package/dist/rules/required-tags/require-class.js +30 -0
- package/dist/rules/required-tags/require-class.js.map +1 -0
- package/dist/rules/required-tags/require-decorator.cjs +0 -1
- package/dist/rules/required-tags/require-decorator.d.ts.map +1 -1
- package/dist/rules/required-tags/require-decorator.js +1 -2
- package/dist/rules/required-tags/require-decorator.js.map +1 -1
- package/dist/rules/required-tags/require-default-value.cjs +0 -1
- package/dist/rules/required-tags/require-default-value.d.ts.map +1 -1
- package/dist/rules/required-tags/require-default-value.js +1 -2
- package/dist/rules/required-tags/require-default-value.js.map +1 -1
- package/dist/rules/required-tags/require-deprecated.cjs +0 -1
- package/dist/rules/required-tags/require-deprecated.d.ts.map +1 -1
- package/dist/rules/required-tags/require-deprecated.js +1 -2
- package/dist/rules/required-tags/require-deprecated.js.map +1 -1
- package/dist/rules/required-tags/require-document.cjs +32 -0
- package/dist/rules/required-tags/require-document.d.ts +5 -0
- package/dist/rules/required-tags/require-document.d.ts.map +1 -0
- package/dist/rules/required-tags/require-document.js +30 -0
- package/dist/rules/required-tags/require-document.js.map +1 -0
- package/dist/rules/required-tags/require-enum.cjs +32 -0
- package/dist/rules/required-tags/require-enum.d.ts +5 -0
- package/dist/rules/required-tags/require-enum.d.ts.map +1 -0
- package/dist/rules/required-tags/require-enum.js +30 -0
- package/dist/rules/required-tags/require-enum.js.map +1 -0
- package/dist/rules/required-tags/require-event-property.cjs +0 -1
- package/dist/rules/required-tags/require-event-property.d.ts.map +1 -1
- package/dist/rules/required-tags/require-event-property.js +1 -2
- package/dist/rules/required-tags/require-event-property.js.map +1 -1
- package/dist/rules/required-tags/require-event.cjs +32 -0
- package/dist/rules/required-tags/require-event.d.ts +5 -0
- package/dist/rules/required-tags/require-event.d.ts.map +1 -0
- package/dist/rules/required-tags/require-event.js +30 -0
- package/dist/rules/required-tags/require-event.js.map +1 -0
- package/dist/rules/required-tags/require-example.cjs +0 -1
- package/dist/rules/required-tags/require-example.d.ts.map +1 -1
- package/dist/rules/required-tags/require-example.js +1 -2
- package/dist/rules/required-tags/require-example.js.map +1 -1
- package/dist/rules/required-tags/require-expand.cjs +32 -0
- package/dist/rules/required-tags/require-expand.d.ts +5 -0
- package/dist/rules/required-tags/require-expand.d.ts.map +1 -0
- package/dist/rules/required-tags/require-expand.js +30 -0
- package/dist/rules/required-tags/require-expand.js.map +1 -0
- package/dist/rules/required-tags/require-experimental.cjs +0 -1
- package/dist/rules/required-tags/require-experimental.d.ts.map +1 -1
- package/dist/rules/required-tags/require-experimental.js +1 -2
- package/dist/rules/required-tags/require-experimental.js.map +1 -1
- package/dist/rules/required-tags/require-function.cjs +32 -0
- package/dist/rules/required-tags/require-function.d.ts +5 -0
- package/dist/rules/required-tags/require-function.d.ts.map +1 -0
- package/dist/rules/required-tags/require-function.js +30 -0
- package/dist/rules/required-tags/require-function.js.map +1 -0
- package/dist/rules/required-tags/require-group.cjs +32 -0
- package/dist/rules/required-tags/require-group.d.ts +5 -0
- package/dist/rules/required-tags/require-group.d.ts.map +1 -0
- package/dist/rules/required-tags/require-group.js +30 -0
- package/dist/rules/required-tags/require-group.js.map +1 -0
- package/dist/rules/required-tags/require-hidden.cjs +32 -0
- package/dist/rules/required-tags/require-hidden.d.ts +5 -0
- package/dist/rules/required-tags/require-hidden.d.ts.map +1 -0
- package/dist/rules/required-tags/require-hidden.js +30 -0
- package/dist/rules/required-tags/require-hidden.js.map +1 -0
- package/dist/rules/required-tags/require-hideconstructor.cjs +32 -0
- package/dist/rules/required-tags/require-hideconstructor.d.ts +5 -0
- package/dist/rules/required-tags/require-hideconstructor.d.ts.map +1 -0
- package/dist/rules/required-tags/require-hideconstructor.js +30 -0
- package/dist/rules/required-tags/require-hideconstructor.js.map +1 -0
- package/dist/rules/required-tags/require-ignore.cjs +32 -0
- package/dist/rules/required-tags/require-ignore.d.ts +5 -0
- package/dist/rules/required-tags/require-ignore.d.ts.map +1 -0
- package/dist/rules/required-tags/require-ignore.js +30 -0
- package/dist/rules/required-tags/require-ignore.js.map +1 -0
- package/dist/rules/required-tags/require-import.cjs +32 -0
- package/dist/rules/required-tags/require-import.d.ts +5 -0
- package/dist/rules/required-tags/require-import.d.ts.map +1 -0
- package/dist/rules/required-tags/require-import.js +30 -0
- package/dist/rules/required-tags/require-import.js.map +1 -0
- package/dist/rules/required-tags/require-include.cjs +32 -0
- package/dist/rules/required-tags/require-include.d.ts +5 -0
- package/dist/rules/required-tags/require-include.d.ts.map +1 -0
- package/dist/rules/required-tags/require-include.js +30 -0
- package/dist/rules/required-tags/require-include.js.map +1 -0
- package/dist/rules/required-tags/require-inherit-doc.cjs +0 -1
- package/dist/rules/required-tags/require-inherit-doc.d.ts.map +1 -1
- package/dist/rules/required-tags/require-inherit-doc.js +1 -2
- package/dist/rules/required-tags/require-inherit-doc.js.map +1 -1
- package/dist/rules/required-tags/require-inline.cjs +32 -0
- package/dist/rules/required-tags/require-inline.d.ts +5 -0
- package/dist/rules/required-tags/require-inline.d.ts.map +1 -0
- package/dist/rules/required-tags/require-inline.js +30 -0
- package/dist/rules/required-tags/require-inline.js.map +1 -0
- package/dist/rules/required-tags/require-interface.cjs +32 -0
- package/dist/rules/required-tags/require-interface.d.ts +5 -0
- package/dist/rules/required-tags/require-interface.d.ts.map +1 -0
- package/dist/rules/required-tags/require-interface.js +30 -0
- package/dist/rules/required-tags/require-interface.js.map +1 -0
- package/dist/rules/required-tags/require-internal.cjs +0 -1
- package/dist/rules/required-tags/require-internal.d.ts.map +1 -1
- package/dist/rules/required-tags/require-internal.js +1 -2
- package/dist/rules/required-tags/require-internal.js.map +1 -1
- package/dist/rules/required-tags/require-label.cjs +0 -1
- package/dist/rules/required-tags/require-label.d.ts.map +1 -1
- package/dist/rules/required-tags/require-label.js +1 -2
- package/dist/rules/required-tags/require-label.js.map +1 -1
- package/dist/rules/required-tags/require-license.cjs +32 -0
- package/dist/rules/required-tags/require-license.d.ts +5 -0
- package/dist/rules/required-tags/require-license.d.ts.map +1 -0
- package/dist/rules/required-tags/require-license.js +30 -0
- package/dist/rules/required-tags/require-license.js.map +1 -0
- package/dist/rules/required-tags/require-link.cjs +0 -1
- package/dist/rules/required-tags/require-link.d.ts.map +1 -1
- package/dist/rules/required-tags/require-link.js +1 -2
- package/dist/rules/required-tags/require-link.js.map +1 -1
- package/dist/rules/required-tags/require-merge-module-with.cjs +32 -0
- package/dist/rules/required-tags/require-merge-module-with.d.ts +5 -0
- package/dist/rules/required-tags/require-merge-module-with.d.ts.map +1 -0
- package/dist/rules/required-tags/require-merge-module-with.js +30 -0
- package/dist/rules/required-tags/require-merge-module-with.js.map +1 -0
- package/dist/rules/required-tags/require-module.cjs +32 -0
- package/dist/rules/required-tags/require-module.d.ts +5 -0
- package/dist/rules/required-tags/require-module.d.ts.map +1 -0
- package/dist/rules/required-tags/require-module.js +30 -0
- package/dist/rules/required-tags/require-module.js.map +1 -0
- package/dist/rules/required-tags/require-namespace.cjs +32 -0
- package/dist/rules/required-tags/require-namespace.d.ts +5 -0
- package/dist/rules/required-tags/require-namespace.d.ts.map +1 -0
- package/dist/rules/required-tags/require-namespace.js +30 -0
- package/dist/rules/required-tags/require-namespace.js.map +1 -0
- package/dist/rules/required-tags/require-overload.cjs +32 -0
- package/dist/rules/required-tags/require-overload.d.ts +5 -0
- package/dist/rules/required-tags/require-overload.d.ts.map +1 -0
- package/dist/rules/required-tags/require-overload.js +30 -0
- package/dist/rules/required-tags/require-overload.js.map +1 -0
- package/dist/rules/required-tags/require-override.cjs +0 -1
- package/dist/rules/required-tags/require-override.d.ts.map +1 -1
- package/dist/rules/required-tags/require-override.js +1 -2
- package/dist/rules/required-tags/require-override.js.map +1 -1
- package/dist/rules/required-tags/require-package-documentation.cjs +0 -1
- package/dist/rules/required-tags/require-package-documentation.d.ts.map +1 -1
- package/dist/rules/required-tags/require-package-documentation.js +1 -2
- package/dist/rules/required-tags/require-package-documentation.js.map +1 -1
- package/dist/rules/required-tags/require-param.cjs +0 -1
- package/dist/rules/required-tags/require-param.d.ts.map +1 -1
- package/dist/rules/required-tags/require-param.js +1 -2
- package/dist/rules/required-tags/require-param.js.map +1 -1
- package/dist/rules/required-tags/require-primary-export.cjs +32 -0
- package/dist/rules/required-tags/require-primary-export.d.ts +5 -0
- package/dist/rules/required-tags/require-primary-export.d.ts.map +1 -0
- package/dist/rules/required-tags/require-primary-export.js +30 -0
- package/dist/rules/required-tags/require-primary-export.js.map +1 -0
- package/dist/rules/required-tags/require-private-remarks.cjs +0 -1
- package/dist/rules/required-tags/require-private-remarks.d.ts.map +1 -1
- package/dist/rules/required-tags/require-private-remarks.js +1 -2
- package/dist/rules/required-tags/require-private-remarks.js.map +1 -1
- package/dist/rules/required-tags/require-private.cjs +32 -0
- package/dist/rules/required-tags/require-private.d.ts +5 -0
- package/dist/rules/required-tags/require-private.d.ts.map +1 -0
- package/dist/rules/required-tags/require-private.js +30 -0
- package/dist/rules/required-tags/require-private.js.map +1 -0
- package/dist/rules/required-tags/require-property.cjs +32 -0
- package/dist/rules/required-tags/require-property.d.ts +5 -0
- package/dist/rules/required-tags/require-property.d.ts.map +1 -0
- package/dist/rules/required-tags/require-property.js +30 -0
- package/dist/rules/required-tags/require-property.js.map +1 -0
- package/dist/rules/required-tags/require-protected.cjs +32 -0
- package/dist/rules/required-tags/require-protected.d.ts +5 -0
- package/dist/rules/required-tags/require-protected.d.ts.map +1 -0
- package/dist/rules/required-tags/require-protected.js +30 -0
- package/dist/rules/required-tags/require-protected.js.map +1 -0
- package/dist/rules/required-tags/require-public.cjs +0 -1
- package/dist/rules/required-tags/require-public.d.ts.map +1 -1
- package/dist/rules/required-tags/require-public.js +1 -2
- package/dist/rules/required-tags/require-public.js.map +1 -1
- package/dist/rules/required-tags/require-readonly.cjs +0 -1
- package/dist/rules/required-tags/require-readonly.d.ts.map +1 -1
- package/dist/rules/required-tags/require-readonly.js +1 -2
- package/dist/rules/required-tags/require-readonly.js.map +1 -1
- package/dist/rules/required-tags/require-remarks.cjs +0 -1
- package/dist/rules/required-tags/require-remarks.d.ts.map +1 -1
- package/dist/rules/required-tags/require-remarks.js +1 -2
- package/dist/rules/required-tags/require-remarks.js.map +1 -1
- package/dist/rules/required-tags/require-returns.cjs +0 -1
- package/dist/rules/required-tags/require-returns.d.ts.map +1 -1
- package/dist/rules/required-tags/require-returns.js +1 -2
- package/dist/rules/required-tags/require-returns.js.map +1 -1
- package/dist/rules/required-tags/require-sealed.cjs +0 -1
- package/dist/rules/required-tags/require-sealed.d.ts.map +1 -1
- package/dist/rules/required-tags/require-sealed.js +1 -2
- package/dist/rules/required-tags/require-sealed.js.map +1 -1
- package/dist/rules/required-tags/require-see.cjs +0 -1
- package/dist/rules/required-tags/require-see.d.ts.map +1 -1
- package/dist/rules/required-tags/require-see.js +1 -2
- package/dist/rules/required-tags/require-see.js.map +1 -1
- package/dist/rules/required-tags/require-since.cjs +32 -0
- package/dist/rules/required-tags/require-since.d.ts +5 -0
- package/dist/rules/required-tags/require-since.d.ts.map +1 -0
- package/dist/rules/required-tags/require-since.js +30 -0
- package/dist/rules/required-tags/require-since.js.map +1 -0
- package/dist/rules/required-tags/require-sort-strategy.cjs +32 -0
- package/dist/rules/required-tags/require-sort-strategy.d.ts +5 -0
- package/dist/rules/required-tags/require-sort-strategy.d.ts.map +1 -0
- package/dist/rules/required-tags/require-sort-strategy.js +30 -0
- package/dist/rules/required-tags/require-sort-strategy.js.map +1 -0
- package/dist/rules/required-tags/require-summary.cjs +32 -0
- package/dist/rules/required-tags/require-summary.d.ts +5 -0
- package/dist/rules/required-tags/require-summary.d.ts.map +1 -0
- package/dist/rules/required-tags/require-summary.js +30 -0
- package/dist/rules/required-tags/require-summary.js.map +1 -0
- package/dist/rules/required-tags/require-template.cjs +32 -0
- package/dist/rules/required-tags/require-template.d.ts +5 -0
- package/dist/rules/required-tags/require-template.d.ts.map +1 -0
- package/dist/rules/required-tags/require-template.js +30 -0
- package/dist/rules/required-tags/require-template.js.map +1 -0
- package/dist/rules/required-tags/require-throws.cjs +0 -1
- package/dist/rules/required-tags/require-throws.d.ts.map +1 -1
- package/dist/rules/required-tags/require-throws.js +1 -2
- package/dist/rules/required-tags/require-throws.js.map +1 -1
- package/dist/rules/required-tags/require-type-param.cjs +0 -1
- package/dist/rules/required-tags/require-type-param.d.ts.map +1 -1
- package/dist/rules/required-tags/require-type-param.js +1 -2
- package/dist/rules/required-tags/require-type-param.js.map +1 -1
- package/dist/rules/required-tags/require-use-declared-type.cjs +32 -0
- package/dist/rules/required-tags/require-use-declared-type.d.ts +5 -0
- package/dist/rules/required-tags/require-use-declared-type.d.ts.map +1 -0
- package/dist/rules/required-tags/require-use-declared-type.js +30 -0
- package/dist/rules/required-tags/require-use-declared-type.js.map +1 -0
- package/dist/rules/required-tags/require-virtual.cjs +0 -1
- package/dist/rules/required-tags/require-virtual.d.ts.map +1 -1
- package/dist/rules/required-tags/require-virtual.js +1 -2
- package/dist/rules/required-tags/require-virtual.js.map +1 -1
- package/dist/rules/restrict-tags.cjs +416 -0
- package/dist/rules/restrict-tags.d.ts +17 -0
- package/dist/rules/restrict-tags.d.ts.map +1 -0
- package/dist/rules/restrict-tags.js +414 -0
- package/dist/rules/restrict-tags.js.map +1 -0
- package/docs/rules/getting-started.md +97 -0
- package/docs/rules/index.md +61 -0
- package/docs/rules/presets/all.md +100 -0
- package/docs/rules/presets/detailed.md +41 -0
- package/docs/rules/presets/index.md +156 -0
- package/docs/rules/presets/jsdoc.md +43 -0
- package/docs/rules/presets/packages.md +41 -0
- package/docs/rules/presets/recommended.md +37 -0
- package/docs/rules/presets/tsdoc.md +45 -0
- package/docs/rules/presets/typedoc-strict.md +50 -0
- package/docs/rules/presets/typedoc.md +44 -0
- package/docs/rules/require.md +92 -56
- package/docs/rules/required-tags/require-abstract.md +87 -0
- package/docs/rules/required-tags/require-alpha.md +1 -1
- package/docs/rules/required-tags/require-author.md +87 -0
- package/docs/rules/required-tags/require-beta.md +1 -1
- package/docs/rules/required-tags/require-category.md +87 -0
- package/docs/rules/required-tags/require-class.md +71 -0
- package/docs/rules/required-tags/require-decorator.md +1 -1
- package/docs/rules/required-tags/require-default-value.md +1 -1
- package/docs/rules/required-tags/require-deprecated.md +1 -1
- package/docs/rules/required-tags/require-document.md +87 -0
- package/docs/rules/required-tags/require-enum.md +73 -0
- package/docs/rules/required-tags/require-event-property.md +1 -1
- package/docs/rules/required-tags/require-event.md +87 -0
- package/docs/rules/required-tags/require-example.md +1 -1
- package/docs/rules/required-tags/require-expand.md +87 -0
- package/docs/rules/required-tags/require-experimental.md +1 -1
- package/docs/rules/required-tags/require-function.md +74 -0
- package/docs/rules/required-tags/require-group.md +87 -0
- package/docs/rules/required-tags/require-hidden.md +87 -0
- package/docs/rules/required-tags/require-hideconstructor.md +87 -0
- package/docs/rules/required-tags/require-ignore.md +87 -0
- package/docs/rules/required-tags/require-import.md +87 -0
- package/docs/rules/required-tags/require-include.md +87 -0
- package/docs/rules/required-tags/require-inherit-doc.md +1 -1
- package/docs/rules/required-tags/require-inline.md +87 -0
- package/docs/rules/required-tags/require-interface.md +74 -0
- package/docs/rules/required-tags/require-internal.md +1 -1
- package/docs/rules/required-tags/require-label.md +1 -1
- package/docs/rules/required-tags/require-license.md +87 -0
- package/docs/rules/required-tags/require-link.md +1 -1
- package/docs/rules/required-tags/require-merge-module-with.md +87 -0
- package/docs/rules/required-tags/require-module.md +78 -0
- package/docs/rules/required-tags/require-namespace.md +87 -0
- package/docs/rules/required-tags/require-overload.md +87 -0
- package/docs/rules/required-tags/require-override.md +1 -1
- package/docs/rules/required-tags/require-package-documentation.md +44 -24
- package/docs/rules/required-tags/require-param.md +45 -25
- package/docs/rules/required-tags/require-primary-export.md +87 -0
- package/docs/rules/required-tags/require-private.md +87 -0
- package/docs/rules/required-tags/require-property.md +87 -0
- package/docs/rules/required-tags/require-protected.md +87 -0
- package/docs/rules/required-tags/require-remarks.md +40 -25
- package/docs/rules/required-tags/require-returns.md +45 -25
- package/docs/rules/required-tags/require-since.md +87 -0
- package/docs/rules/required-tags/require-sort-strategy.md +87 -0
- package/docs/rules/required-tags/require-summary.md +87 -0
- package/docs/rules/required-tags/require-template.md +87 -0
- package/docs/rules/required-tags/require-throws.md +53 -25
- package/docs/rules/required-tags/require-type-param.md +45 -25
- package/docs/rules/required-tags/require-use-declared-type.md +87 -0
- package/docs/rules/required-tags.md +171 -39
- package/docs/rules/restrict-tags.md +203 -0
- package/package.json +394 -45
|
@@ -1,29 +1,45 @@
|
|
|
1
1
|
# tsdoc-require-2/require-type-param
|
|
2
2
|
|
|
3
|
-
Require the `@typeParam` tag in TSDoc blocks for
|
|
3
|
+
Require the `@typeParam` tag in TSDoc blocks for targeted declarations.
|
|
4
4
|
|
|
5
5
|
## Rule details
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
This rule reports declarations that already have TSDoc but are missing `@typeParam`.
|
|
8
8
|
|
|
9
|
-
It
|
|
9
|
+
It does not create a TSDoc block. Pair it with [`tsdoc-require-2/require`](../require.md) when you also want to require comments.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
## Why use it
|
|
12
|
+
|
|
13
|
+
`@typeParam` makes generic contracts easier to understand for callers and maintainers.
|
|
13
14
|
|
|
14
15
|
## Options
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
This rule supports the same options as [`tsdoc-require-2/require`](../require.md):
|
|
18
|
+
|
|
19
|
+
- `enforceFor`
|
|
20
|
+
- `exportMode`
|
|
21
|
+
- `includeNonExported` (legacy alias for `exportMode: "all"`)
|
|
22
|
+
|
|
23
|
+
Flat config example (generic declarations only):
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import tsdocRequire from "eslint-plugin-tsdoc-require-2";
|
|
27
|
+
|
|
28
|
+
export default [
|
|
29
|
+
{
|
|
30
|
+
plugins: {
|
|
31
|
+
"tsdoc-require-2": tsdocRequire,
|
|
32
|
+
},
|
|
33
|
+
rules: {
|
|
34
|
+
"tsdoc-require-2/require-type-param": [
|
|
35
|
+
"error",
|
|
36
|
+
{
|
|
37
|
+
enforceFor: ["class", "function", "interface", "type"],
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
];
|
|
27
43
|
```
|
|
28
44
|
|
|
29
45
|
## Examples
|
|
@@ -32,10 +48,10 @@ It supports the same options as [`tsdoc-require-2/require`](../require.md):
|
|
|
32
48
|
|
|
33
49
|
```ts
|
|
34
50
|
/**
|
|
35
|
-
*
|
|
51
|
+
* Wraps data in a typed container.
|
|
36
52
|
*/
|
|
37
|
-
export function
|
|
38
|
-
return value;
|
|
53
|
+
export function wrap<T>(value: T): { value: T } {
|
|
54
|
+
return { value };
|
|
39
55
|
}
|
|
40
56
|
```
|
|
41
57
|
|
|
@@ -43,15 +59,19 @@ export function runTask(value: string): string {
|
|
|
43
59
|
|
|
44
60
|
```ts
|
|
45
61
|
/**
|
|
46
|
-
*
|
|
47
|
-
* @typeParam
|
|
62
|
+
* Wraps data in a typed container.
|
|
63
|
+
* @typeParam T - Value type stored in the wrapper.
|
|
48
64
|
*/
|
|
49
|
-
export function
|
|
50
|
-
return value;
|
|
65
|
+
export function wrap<T>(value: T): { value: T } {
|
|
66
|
+
return { value };
|
|
51
67
|
}
|
|
52
68
|
```
|
|
53
69
|
|
|
70
|
+
## Behavior notes
|
|
71
|
+
|
|
72
|
+
This rule checks tag presence. It does not verify one `@typeParam` tag per generic parameter.
|
|
73
|
+
|
|
54
74
|
## Further reading
|
|
55
75
|
|
|
56
|
-
- TSDoc tag reference:
|
|
57
|
-
-
|
|
76
|
+
- [TSDoc tag reference: @typeParam](https://tsdoc.org/pages/tags/typeparam/)
|
|
77
|
+
- [required-tags family overview](../required-tags.md)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# tsdoc-require-2/require-use-declared-type
|
|
2
|
+
|
|
3
|
+
Require the `@useDeclaredType` tag in TSDoc blocks for supported TypeScript declarations.
|
|
4
|
+
|
|
5
|
+
## Rule Details
|
|
6
|
+
|
|
7
|
+
This rule reports supported declarations and default exports when a TSDoc block exists but does not contain `@useDeclaredType`. It does not create the TSDoc block itself, so pair it with [`tsdoc-require-2/require`](../require.md) when you also want to require the comment.
|
|
8
|
+
|
|
9
|
+
## Options
|
|
10
|
+
|
|
11
|
+
This rule accepts the same options as [`tsdoc-require-2/require`](../require.md):
|
|
12
|
+
|
|
13
|
+
- `enforceFor`: limit which declaration kinds are checked.
|
|
14
|
+
- `exportMode`: choose whether to check exported declarations, non-exported top-level declarations, or both.
|
|
15
|
+
- `includeNonExported`: legacy alias for `exportMode: "all"`.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
type Options = [
|
|
19
|
+
{
|
|
20
|
+
enforceFor?: Array<
|
|
21
|
+
| "class"
|
|
22
|
+
| "enum"
|
|
23
|
+
| "function"
|
|
24
|
+
| "interface"
|
|
25
|
+
| "namespace"
|
|
26
|
+
| "object"
|
|
27
|
+
| "type"
|
|
28
|
+
| "variable"
|
|
29
|
+
>;
|
|
30
|
+
exportMode?: "all" | "exported" | "non-exported";
|
|
31
|
+
includeNonExported?: boolean;
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Default options:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
[
|
|
40
|
+
{
|
|
41
|
+
enforceFor: [
|
|
42
|
+
"class",
|
|
43
|
+
"enum",
|
|
44
|
+
"function",
|
|
45
|
+
"interface",
|
|
46
|
+
"namespace",
|
|
47
|
+
"object",
|
|
48
|
+
"type",
|
|
49
|
+
"variable",
|
|
50
|
+
],
|
|
51
|
+
exportMode: "exported",
|
|
52
|
+
},
|
|
53
|
+
]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## ❌ Incorrect
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
/**
|
|
60
|
+
* Performs a tagged operation.
|
|
61
|
+
*/
|
|
62
|
+
export function taggedFunction(value: string): string {
|
|
63
|
+
return value;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ✅ Correct
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
/**
|
|
71
|
+
* Performs a tagged operation.
|
|
72
|
+
* @useDeclaredType
|
|
73
|
+
*/
|
|
74
|
+
export function taggedFunction(value: string): string {
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## When Not To Use It
|
|
80
|
+
|
|
81
|
+
Disable this rule if your documentation convention does not require `@useDeclaredType` on the declarations targeted by your configuration.
|
|
82
|
+
|
|
83
|
+
## Further Reading
|
|
84
|
+
|
|
85
|
+
- [TSDoc](https://tsdoc.org)
|
|
86
|
+
- [TypeDoc Tags](https://typedoc.org/documents/Tags.html)
|
|
87
|
+
- [required-tags](../required-tags.md)
|
|
@@ -1,76 +1,208 @@
|
|
|
1
|
-
# required-tags
|
|
1
|
+
# tsdoc-require-2/required-tags
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **Rule catalog ID:** R100
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Targeted pattern scope
|
|
6
6
|
|
|
7
|
+
This page documents the **required-tag rule family** (`require-*`).
|
|
8
|
+
|
|
9
|
+
Each `require-*` rule checks declarations that already have TSDoc and reports when its specific tag is missing.
|
|
10
|
+
|
|
11
|
+
Examples:
|
|
12
|
+
|
|
13
|
+
- `tsdoc-require-2/require-param` requires `@param`
|
|
14
|
+
- `tsdoc-require-2/require-returns` requires `@returns`
|
|
15
|
+
- `tsdoc-require-2/require-remarks` requires `@remarks`
|
|
16
|
+
|
|
17
|
+
## What this rule reports
|
|
18
|
+
|
|
19
|
+
For each enabled `require-*` rule, reports declarations where:
|
|
20
|
+
|
|
21
|
+
- a TSDoc block exists, and
|
|
22
|
+
- the required tag for that rule does not appear in the block.
|
|
23
|
+
|
|
24
|
+
Like [`tsdoc-require-2/require`](./require.md), required-tag rules support declaration targeting (`enforceFor`) and export scope (`exportMode` / `includeNonExported`).
|
|
25
|
+
|
|
26
|
+
## Why this rule exists
|
|
27
|
+
|
|
28
|
+
Comment presence alone does not guarantee useful docs.
|
|
29
|
+
|
|
30
|
+
Required-tag rules let you enforce documentation contracts such as:
|
|
31
|
+
|
|
32
|
+
- every documented function has `@param` / `@returns`
|
|
33
|
+
- every package entry has `@packageDocumentation`
|
|
34
|
+
- every declaration includes `@remarks` for implementation context
|
|
35
|
+
|
|
36
|
+
Together, these rules turn documentation from optional prose into a consistent API contract.
|
|
37
|
+
|
|
38
|
+
## ❌ Incorrect
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
/**
|
|
42
|
+
* Creates a user record.
|
|
43
|
+
*/
|
|
44
|
+
export function createUser(name: string): string {
|
|
45
|
+
return name;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
With:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
["error", { enforceFor: ["function"] }]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
for `tsdoc-require-2/require-param` and `tsdoc-require-2/require-returns`.
|
|
56
|
+
|
|
57
|
+
## ✅ Correct
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
/**
|
|
61
|
+
* Creates a user record.
|
|
62
|
+
* @param name - User display name.
|
|
63
|
+
* @returns Persisted user ID.
|
|
64
|
+
*/
|
|
65
|
+
export function createUser(name: string): string {
|
|
66
|
+
return name;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Behavior and migration notes
|
|
71
|
+
|
|
72
|
+
- No single runtime rule key named `tsdoc-require-2/required-tags` exists; enable individual `require-*` rules.
|
|
73
|
+
- Required-tag rules only validate comments that exist. Pair them with [`tsdoc-require-2/require`](./require.md).
|
|
74
|
+
- If you also enable [`tsdoc-require-2/restrict-tags`](./restrict-tags.md) in `allow` mode, include all required tags in the allow-list to avoid policy conflicts.
|
|
75
|
+
- Keep `enforceFor` and `exportMode` aligned across `require`, `require-*`, and `restrict-tags` for predictable results.
|
|
76
|
+
|
|
77
|
+
## Additional examples
|
|
78
|
+
|
|
79
|
+
### Shared options
|
|
80
|
+
|
|
81
|
+
Each `require-*` rule accepts the same option shape:
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
type Options = [
|
|
85
|
+
{
|
|
86
|
+
enforceFor?: Array<
|
|
87
|
+
| "class"
|
|
88
|
+
| "enum"
|
|
89
|
+
| "function"
|
|
90
|
+
| "interface"
|
|
91
|
+
| "namespace"
|
|
92
|
+
| "object"
|
|
93
|
+
| "type"
|
|
94
|
+
| "variable"
|
|
95
|
+
>;
|
|
96
|
+
exportMode?: "all" | "exported" | "non-exported";
|
|
97
|
+
includeNonExported?: boolean;
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Default options:
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
[
|
|
106
|
+
{
|
|
107
|
+
enforceFor: [
|
|
108
|
+
"class",
|
|
109
|
+
"enum",
|
|
110
|
+
"function",
|
|
111
|
+
"interface",
|
|
112
|
+
"namespace",
|
|
113
|
+
"object",
|
|
114
|
+
"type",
|
|
115
|
+
"variable",
|
|
116
|
+
],
|
|
117
|
+
exportMode: "exported",
|
|
118
|
+
},
|
|
119
|
+
]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Rules in this family
|
|
123
|
+
|
|
124
|
+
- [`tsdoc-require-2/require-abstract`](./required-tags/require-abstract.md)
|
|
7
125
|
- [`tsdoc-require-2/require-alpha`](./required-tags/require-alpha.md)
|
|
126
|
+
- [`tsdoc-require-2/require-author`](./required-tags/require-author.md)
|
|
8
127
|
- [`tsdoc-require-2/require-beta`](./required-tags/require-beta.md)
|
|
128
|
+
- [`tsdoc-require-2/require-category`](./required-tags/require-category.md)
|
|
129
|
+
- [`tsdoc-require-2/require-class`](./required-tags/require-class.md)
|
|
9
130
|
- [`tsdoc-require-2/require-decorator`](./required-tags/require-decorator.md)
|
|
10
131
|
- [`tsdoc-require-2/require-default-value`](./required-tags/require-default-value.md)
|
|
11
132
|
- [`tsdoc-require-2/require-deprecated`](./required-tags/require-deprecated.md)
|
|
133
|
+
- [`tsdoc-require-2/require-document`](./required-tags/require-document.md)
|
|
134
|
+
- [`tsdoc-require-2/require-enum`](./required-tags/require-enum.md)
|
|
135
|
+
- [`tsdoc-require-2/require-event`](./required-tags/require-event.md)
|
|
12
136
|
- [`tsdoc-require-2/require-event-property`](./required-tags/require-event-property.md)
|
|
13
137
|
- [`tsdoc-require-2/require-example`](./required-tags/require-example.md)
|
|
138
|
+
- [`tsdoc-require-2/require-expand`](./required-tags/require-expand.md)
|
|
14
139
|
- [`tsdoc-require-2/require-experimental`](./required-tags/require-experimental.md)
|
|
140
|
+
- [`tsdoc-require-2/require-function`](./required-tags/require-function.md)
|
|
141
|
+
- [`tsdoc-require-2/require-group`](./required-tags/require-group.md)
|
|
142
|
+
- [`tsdoc-require-2/require-hidden`](./required-tags/require-hidden.md)
|
|
143
|
+
- [`tsdoc-require-2/require-hideconstructor`](./required-tags/require-hideconstructor.md)
|
|
144
|
+
- [`tsdoc-require-2/require-ignore`](./required-tags/require-ignore.md)
|
|
145
|
+
- [`tsdoc-require-2/require-import`](./required-tags/require-import.md)
|
|
146
|
+
- [`tsdoc-require-2/require-include`](./required-tags/require-include.md)
|
|
15
147
|
- [`tsdoc-require-2/require-inherit-doc`](./required-tags/require-inherit-doc.md)
|
|
148
|
+
- [`tsdoc-require-2/require-inline`](./required-tags/require-inline.md)
|
|
149
|
+
- [`tsdoc-require-2/require-interface`](./required-tags/require-interface.md)
|
|
16
150
|
- [`tsdoc-require-2/require-internal`](./required-tags/require-internal.md)
|
|
17
151
|
- [`tsdoc-require-2/require-label`](./required-tags/require-label.md)
|
|
152
|
+
- [`tsdoc-require-2/require-license`](./required-tags/require-license.md)
|
|
18
153
|
- [`tsdoc-require-2/require-link`](./required-tags/require-link.md)
|
|
154
|
+
- [`tsdoc-require-2/require-merge-module-with`](./required-tags/require-merge-module-with.md)
|
|
155
|
+
- [`tsdoc-require-2/require-module`](./required-tags/require-module.md)
|
|
156
|
+
- [`tsdoc-require-2/require-namespace`](./required-tags/require-namespace.md)
|
|
157
|
+
- [`tsdoc-require-2/require-overload`](./required-tags/require-overload.md)
|
|
19
158
|
- [`tsdoc-require-2/require-override`](./required-tags/require-override.md)
|
|
20
159
|
- [`tsdoc-require-2/require-package-documentation`](./required-tags/require-package-documentation.md)
|
|
21
160
|
- [`tsdoc-require-2/require-param`](./required-tags/require-param.md)
|
|
161
|
+
- [`tsdoc-require-2/require-primary-export`](./required-tags/require-primary-export.md)
|
|
162
|
+
- [`tsdoc-require-2/require-private`](./required-tags/require-private.md)
|
|
22
163
|
- [`tsdoc-require-2/require-private-remarks`](./required-tags/require-private-remarks.md)
|
|
164
|
+
- [`tsdoc-require-2/require-property`](./required-tags/require-property.md)
|
|
165
|
+
- [`tsdoc-require-2/require-protected`](./required-tags/require-protected.md)
|
|
23
166
|
- [`tsdoc-require-2/require-public`](./required-tags/require-public.md)
|
|
24
167
|
- [`tsdoc-require-2/require-readonly`](./required-tags/require-readonly.md)
|
|
25
168
|
- [`tsdoc-require-2/require-remarks`](./required-tags/require-remarks.md)
|
|
26
169
|
- [`tsdoc-require-2/require-returns`](./required-tags/require-returns.md)
|
|
27
170
|
- [`tsdoc-require-2/require-sealed`](./required-tags/require-sealed.md)
|
|
28
171
|
- [`tsdoc-require-2/require-see`](./required-tags/require-see.md)
|
|
172
|
+
- [`tsdoc-require-2/require-since`](./required-tags/require-since.md)
|
|
173
|
+
- [`tsdoc-require-2/require-sort-strategy`](./required-tags/require-sort-strategy.md)
|
|
174
|
+
- [`tsdoc-require-2/require-summary`](./required-tags/require-summary.md)
|
|
175
|
+
- [`tsdoc-require-2/require-template`](./required-tags/require-template.md)
|
|
29
176
|
- [`tsdoc-require-2/require-throws`](./required-tags/require-throws.md)
|
|
30
177
|
- [`tsdoc-require-2/require-type-param`](./required-tags/require-type-param.md)
|
|
178
|
+
- [`tsdoc-require-2/require-use-declared-type`](./required-tags/require-use-declared-type.md)
|
|
31
179
|
- [`tsdoc-require-2/require-virtual`](./required-tags/require-virtual.md)
|
|
32
180
|
|
|
33
|
-
##
|
|
34
|
-
|
|
35
|
-
Each rule accepts the same option shape:
|
|
181
|
+
## ESLint flat config example
|
|
36
182
|
|
|
37
183
|
```ts
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
| "variable"
|
|
48
|
-
>;
|
|
49
|
-
includeNonExported?: boolean;
|
|
184
|
+
import tsdocRequire from "eslint-plugin-tsdoc-require-2";
|
|
185
|
+
|
|
186
|
+
export default [
|
|
187
|
+
tsdocRequire.configs.recommended,
|
|
188
|
+
{
|
|
189
|
+
rules: {
|
|
190
|
+
"tsdoc-require-2/require-param": ["error", { enforceFor: ["function"] }],
|
|
191
|
+
"tsdoc-require-2/require-returns": ["error", { enforceFor: ["function"] }],
|
|
192
|
+
"tsdoc-require-2/require-throws": ["error", { enforceFor: ["function"] }],
|
|
50
193
|
},
|
|
51
|
-
|
|
194
|
+
},
|
|
195
|
+
];
|
|
52
196
|
```
|
|
53
197
|
|
|
54
|
-
|
|
198
|
+
## When not to use it
|
|
55
199
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
enforceFor: [
|
|
60
|
-
"class",
|
|
61
|
-
"enum",
|
|
62
|
-
"function",
|
|
63
|
-
"interface",
|
|
64
|
-
"object",
|
|
65
|
-
"type",
|
|
66
|
-
"variable",
|
|
67
|
-
],
|
|
68
|
-
includeNonExported: false,
|
|
69
|
-
},
|
|
70
|
-
]
|
|
71
|
-
```
|
|
200
|
+
If your team prefers free-form narrative comments and does not want tag-level structure, required-tag rules may add noise.
|
|
201
|
+
|
|
202
|
+
In that case, keep `tsdoc-require-2/require` enabled and only add the strict tag rules that provide clear value.
|
|
72
203
|
|
|
73
|
-
|
|
74
|
-
- `includeNonExported`: when `true`, also checks non-exported top-level declarations.
|
|
204
|
+
## Further reading
|
|
75
205
|
|
|
76
|
-
|
|
206
|
+
- [TSDoc](https://tsdoc.org)
|
|
207
|
+
- [Rule family: require](./require.md)
|
|
208
|
+
- [Rule family: restrict-tags](./restrict-tags.md)
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# tsdoc-require-2/restrict-tags
|
|
2
|
+
|
|
3
|
+
Restrict which tags are allowed in TSDoc blocks using allow/deny lists.
|
|
4
|
+
|
|
5
|
+
> **Rule catalog ID:** R002
|
|
6
|
+
|
|
7
|
+
## Targeted pattern scope
|
|
8
|
+
|
|
9
|
+
This rule checks supported TypeScript declarations and default exports **that already have TSDoc block comments**.
|
|
10
|
+
|
|
11
|
+
By default, it runs on exported declarations and default exports. You can widen or narrow scope with `exportMode` and `enforceFor`.
|
|
12
|
+
|
|
13
|
+
## What this rule reports
|
|
14
|
+
|
|
15
|
+
This rule supports two modes:
|
|
16
|
+
|
|
17
|
+
- `deny`: configured tags are forbidden.
|
|
18
|
+
- `allow`: only configured tags are permitted.
|
|
19
|
+
|
|
20
|
+
Default mode is `deny`, with a default blocked set focused on TypeDoc compatibility tags:
|
|
21
|
+
|
|
22
|
+
- `@augments`
|
|
23
|
+
- `@callback`
|
|
24
|
+
- `@extends`
|
|
25
|
+
- `@jsx`
|
|
26
|
+
- `@satisfies`
|
|
27
|
+
- `@type`
|
|
28
|
+
- `@typedef`
|
|
29
|
+
- `@yields`
|
|
30
|
+
|
|
31
|
+
## Why this rule exists
|
|
32
|
+
|
|
33
|
+
A docs policy needs both **required information** and **controlled vocabulary**.
|
|
34
|
+
|
|
35
|
+
`restrict-tags` prevents drift from your chosen documentation standard by blocking unsupported tags or enforcing an explicit allow-list.
|
|
36
|
+
|
|
37
|
+
Use it with:
|
|
38
|
+
|
|
39
|
+
- [`tsdoc-require-2/require`](./require.md) to enforce comment presence.
|
|
40
|
+
- [`require-*` rules](./required-tags.md) to enforce mandatory tags.
|
|
41
|
+
|
|
42
|
+
## ❌ Incorrect
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
/**
|
|
46
|
+
* Calculates a value.
|
|
47
|
+
* @typedef ResultShape
|
|
48
|
+
*/
|
|
49
|
+
export function calculate(): number {
|
|
50
|
+
return 1;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
With default configuration (`mode: "deny"`).
|
|
55
|
+
|
|
56
|
+
## ✅ Correct
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
/**
|
|
60
|
+
* Calculates a value.
|
|
61
|
+
* @remarks Uses plain TSDoc tags.
|
|
62
|
+
*/
|
|
63
|
+
export function calculate(): number {
|
|
64
|
+
return 1;
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
With default configuration (`mode: "deny"`).
|
|
69
|
+
|
|
70
|
+
## Behavior and migration notes
|
|
71
|
+
|
|
72
|
+
- This rule does not require comments on its own; it only validates tags found inside existing TSDoc blocks.
|
|
73
|
+
- In `allow` mode, any tag not listed in `tags` is reported.
|
|
74
|
+
- If you combine `allow` mode with required-tag rules, include all required tags in the allow-list or the rules will conflict.
|
|
75
|
+
- Keep `enforceFor` and `exportMode` aligned with `require` and `require-*` rules for consistent policy.
|
|
76
|
+
|
|
77
|
+
## Additional examples
|
|
78
|
+
|
|
79
|
+
### Options
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
type Options = [
|
|
83
|
+
{
|
|
84
|
+
enforceFor?: Array<
|
|
85
|
+
| "class"
|
|
86
|
+
| "enum"
|
|
87
|
+
| "function"
|
|
88
|
+
| "interface"
|
|
89
|
+
| "namespace"
|
|
90
|
+
| "object"
|
|
91
|
+
| "type"
|
|
92
|
+
| "variable"
|
|
93
|
+
>;
|
|
94
|
+
exportMode?: "all" | "exported" | "non-exported";
|
|
95
|
+
includeNonExported?: boolean;
|
|
96
|
+
mode?: "allow" | "deny";
|
|
97
|
+
tags?: Array<`@${string}`>;
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Default options:
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
[
|
|
106
|
+
{
|
|
107
|
+
enforceFor: [
|
|
108
|
+
"class",
|
|
109
|
+
"enum",
|
|
110
|
+
"function",
|
|
111
|
+
"interface",
|
|
112
|
+
"namespace",
|
|
113
|
+
"object",
|
|
114
|
+
"type",
|
|
115
|
+
"variable",
|
|
116
|
+
],
|
|
117
|
+
exportMode: "exported",
|
|
118
|
+
mode: "deny",
|
|
119
|
+
tags: [
|
|
120
|
+
"@augments",
|
|
121
|
+
"@callback",
|
|
122
|
+
"@extends",
|
|
123
|
+
"@jsx",
|
|
124
|
+
"@satisfies",
|
|
125
|
+
"@type",
|
|
126
|
+
"@typedef",
|
|
127
|
+
"@yields",
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Allow mode example
|
|
134
|
+
|
|
135
|
+
#### Invalid in allow mode
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
/**
|
|
139
|
+
* Calculates a value.
|
|
140
|
+
* @remarks Useful details.
|
|
141
|
+
* @deprecated Use newCalculate instead.
|
|
142
|
+
*/
|
|
143
|
+
export function calculate(): number {
|
|
144
|
+
return 1;
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
With:
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
["error", { mode: "allow", tags: ["@remarks"] }]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
#### Valid in allow mode
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
/**
|
|
158
|
+
* Calculates a value.
|
|
159
|
+
* @remarks Useful details.
|
|
160
|
+
*/
|
|
161
|
+
export function calculate(): number {
|
|
162
|
+
return 1;
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
With:
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
["error", { mode: "allow", tags: ["@remarks"] }]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## ESLint flat config example
|
|
173
|
+
|
|
174
|
+
```ts
|
|
175
|
+
import tsdocRequire from "eslint-plugin-tsdoc-require-2";
|
|
176
|
+
|
|
177
|
+
export default [
|
|
178
|
+
tsdocRequire.configs.tsdoc,
|
|
179
|
+
{
|
|
180
|
+
rules: {
|
|
181
|
+
"tsdoc-require-2/restrict-tags": [
|
|
182
|
+
"error",
|
|
183
|
+
{
|
|
184
|
+
mode: "deny",
|
|
185
|
+
tags: ["@typedef", "@callback"],
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
];
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## When not to use it
|
|
194
|
+
|
|
195
|
+
If your team intentionally allows free-form mixtures of TSDoc, JSDoc, and TypeDoc tags, this rule can create unnecessary friction.
|
|
196
|
+
|
|
197
|
+
In that case, keep required-tag rules only for tags you truly need.
|
|
198
|
+
|
|
199
|
+
## Further reading
|
|
200
|
+
|
|
201
|
+
- [TSDoc](https://tsdoc.org)
|
|
202
|
+
- [TypeDoc tags reference](https://typedoc.org/documents/Tags.html)
|
|
203
|
+
- [Rule family: required-tags](./required-tags.md)
|