Rules
eslint-plugin-tsdoc-require-2 enforces API documentation with three complementary rule families.
Rule family overviewâ
| Family | Purpose | Start here when |
|---|---|---|
require | Require a TSDoc block (/** ... */) on selected declarations. | You need a documentation baseline first. |
required-tags | Require specific tags (for example @param, @returns, @remarks) through individual require-* rules. | You want documentation completeness and consistency. |
restrict-tags | Allow-list or deny-list tags to control vocabulary and compatibility. | You need a strict tag policy (for example strict TSDoc vs loose JSDoc/TypeDoc tags). |
How the families work togetherâ
Use them in this order:
- Presence:
requireensures docs exist. - Completeness:
require-*rules ensure required tags exist. - Vocabulary:
restrict-tagsensures only approved tags are used.
This sequencing reduces confusion because tag rules only matter once comments exist.
Practical configuration patternâ
Use a preset for the baseline, then add focused overrides.
import tsdocRequire from "eslint-plugin-tsdoc-require-2";
export default [
tsdocRequire.configs.recommended,
{
rules: {
"tsdoc-require-2/require-param": ["error", { enforceFor: ["function"] }],
"tsdoc-require-2/require-returns": ["error", { enforceFor: ["function"] }],
"tsdoc-require-2/restrict-tags": [
"error",
{
mode: "deny",
tags: ["@typedef", "@callback"],
},
],
},
},
];
Where to startâ
- New adoption: Getting Started
- Preset selection: Presets Overview
- Rule family details: