Skip to main content

Presets Overview

Presets are curated rule bundles that help you adopt eslint-plugin-tsdoc-require-2 in controlled stages.

Use one preset as your baseline, then add rule overrides for project-specific policy.

How to choose quickly​

If you want...Start with
Minimal comment presence enforcementrecommended
More narrative context in docsdetailed
Package-level docs for published librariespackages
JSDoc-style function tag disciplinejsdoc
TSDoc-first function + type-parameter docs with tag restrictionstsdoc
TypeDoc declaration-kind taggingtypedoc
Strict TypeDoc workflow with module/remarks and restricted tagstypedoc-strict
Maximum strictness for audits or experimentsall

Preset catalog​

  • recommended: Require docs to exist.
  • detailed: recommended + require @remarks.
  • packages: detailed + require @packageDocumentation.
  • typedoc: TypeDoc declaration-kind tags.
  • typedoc-strict: typedoc + module/remarks + restricted tags.
  • tsdoc: TSDoc-style function/type tags + restricted tags.
  • jsdoc: Function-oriented JSDoc-style tags.
  • all: Every plugin rule.

Preset migration ladder​

Most teams succeed with this progression:

  1. recommended
  2. detailed or jsdoc
  3. tsdoc or typedoc / typedoc-strict

Jumping straight to all is usually expensive and noisy unless your codebase already has consistent docs.

How rules compose inside presets​

Each preset combines the same three policy layers in different strengths:

  1. Presence layer: tsdoc-require-2/require
  2. Required content layer: one or more require-* tag rules
  3. Vocabulary control layer: optional tsdoc-require-2/restrict-tags

This composition is why preset choice matters: two presets can include similar rules but express different documentation policy.

Matrix overview​

The matrix below is generated by scripts/sync-presets-rules-matrix.mjs and kept in sync with the README.

Preset matrix​

RuleFixPreset key
tsdoc-require-2/require—🟱 🟡 🟠 đŸ”” 🔮 🟣 🟩 ⚫
tsdoc-require-2/require-abstract—⚫
tsdoc-require-2/require-alpha—⚫
tsdoc-require-2/require-author—⚫
tsdoc-require-2/require-beta—⚫
tsdoc-require-2/require-category—⚫
tsdoc-require-2/require-classâ€”đŸ”” 🔮 ⚫
tsdoc-require-2/require-decorator—⚫
tsdoc-require-2/require-default-value—⚫
tsdoc-require-2/require-deprecated—⚫
tsdoc-require-2/require-document—⚫
tsdoc-require-2/require-enumâ€”đŸ”” 🔮 ⚫
tsdoc-require-2/require-event—⚫
tsdoc-require-2/require-event-property—⚫
tsdoc-require-2/require-example—⚫
tsdoc-require-2/require-expand—⚫
tsdoc-require-2/require-experimental—⚫
tsdoc-require-2/require-functionâ€”đŸ”” 🔮 ⚫
tsdoc-require-2/require-group—⚫
tsdoc-require-2/require-hidden—⚫
tsdoc-require-2/require-hideconstructor—⚫
tsdoc-require-2/require-ignore—⚫
tsdoc-require-2/require-import—⚫
tsdoc-require-2/require-include—⚫
tsdoc-require-2/require-inherit-doc—⚫
tsdoc-require-2/require-inline—⚫
tsdoc-require-2/require-interfaceâ€”đŸ”” 🔮 ⚫
tsdoc-require-2/require-internal—⚫
tsdoc-require-2/require-label—⚫
tsdoc-require-2/require-license—⚫
tsdoc-require-2/require-link—⚫
tsdoc-require-2/require-merge-module-with—⚫
tsdoc-require-2/require-module—🔮 ⚫
tsdoc-require-2/require-namespace—⚫
tsdoc-require-2/require-overload—⚫
tsdoc-require-2/require-override—⚫
tsdoc-require-2/require-package-documentation—🟠 ⚫
tsdoc-require-2/require-param—🟣 🟩 ⚫
tsdoc-require-2/require-primary-export—⚫
tsdoc-require-2/require-private—⚫
tsdoc-require-2/require-private-remarks—⚫
tsdoc-require-2/require-property—⚫
tsdoc-require-2/require-protected—⚫
tsdoc-require-2/require-public—⚫
tsdoc-require-2/require-readonly—⚫
tsdoc-require-2/require-remarks—🟡 🟠 🔮 🟣 ⚫
tsdoc-require-2/require-returns—🟣 🟩 ⚫
tsdoc-require-2/require-sealed—⚫
tsdoc-require-2/require-see—⚫
tsdoc-require-2/require-since—⚫
tsdoc-require-2/require-sort-strategy—⚫
tsdoc-require-2/require-summary—⚫
tsdoc-require-2/require-template—⚫
tsdoc-require-2/require-throws—🟣 🟩 ⚫
tsdoc-require-2/require-type-param—🟣 ⚫
tsdoc-require-2/require-use-declared-type—⚫
tsdoc-require-2/require-virtual—⚫
tsdoc-require-2/restrict-tags—🔮 🟣 ⚫

Flat Config usage pattern​

Use one preset baseline, then add an override block.

import tsdocRequire from "eslint-plugin-tsdoc-require-2";

export default [
tsdocRequire.configs.tsdoc,
{
rules: {
"tsdoc-require-2/require": ["error", { exportMode: "all" }],
},
},
];

Avoid stacking multiple presets unless you intentionally want merge-order behavior.

For setup steps, see Getting Started.