At minimum you need jsdoc/check-types

This rule is referenced in the documentation for check-types and this rule is required, even though it's not explicit under the documentation for preferredTypes.

Here is the excerpt burried part way down the check-types examples:

/**
 * @param {*} baz
 */
function qux(baz) {
}
// Settings: {"jsdoc":{"preferredTypes":{"*":false,"abc":"Abc","string":"Str"}}}
// Message: Invalid JSDoc @param "baz" type "*".

Without check-types the preferred types setting does nothing, which, if you think about it makes sense.

Answer from AncientSwordRage on Stack Overflow
🌐
npm
npmjs.com › package › eslint-plugin-jsdoc
eslint-plugin-jsdoc - npm
2 weeks ago - A plugins property can also be supplied to merge with the resulting jsdoc plugin. Other config properties such as files, ignores, etc. are also copied over, though noting that if the specified config produces an array, they will not currently function. There is also a extraRuleDefinitions.forbid option, the details of which are explained in the Advanced docs (under creating your own rules and forbidding structures). import jsdoc from 'eslint-plugin-jsdoc'; const config = [ // configuration included in plugin jsdoc.configs['flat/recommended'], // other configuration objects...
      » npm install eslint-plugin-jsdoc
    
Published   Feb 24, 2026
Version   62.7.1
Author   Gajus Kuizinas
🌐
GitHub
github.com › gajus › eslint-plugin-jsdoc › releases
Releases · gajus/eslint-plugin-jsdoc
JSDoc specific linting rules for ESLint. Contribute to gajus/eslint-plugin-jsdoc development by creating an account on GitHub.
Author   gajus
🌐
jsDocs.io
jsdocs.io › package › eslint-plugin-jsdoc
eslint-plugin-jsdoc@62.7.1 - jsDocs.io
2 weeks ago - JSDoc linting rules for ESLint. ... {"recommended" | "stylistic" | "contents" | "logical" | "requirements"} ConfigGroups {"" | "-typescript" | "-typescript-flavor"} ConfigVariants {"" | "-error"} ErrorLevelVariants {import('eslint').ESLint.Plugin & { configs: Record< flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}, import('eslint').Linter.Config > & Record< "examples"|"default-expressions"|"examples-and-default-expressions", import('eslint').Linter.Config[] > & Record<"flat/recommended-mixed", import('eslint').Linter.Config[]> }}
Discussions

Setting up eslint-plugin-jsdoc
Have you actually declared the rules from the plugin? Looking at the docs, that seems to be required. More on reddit.com
🌐 r/typescript
6
1
October 13, 2024
How do I configure eslint-plugin-jsdoc to disallow '*' and 'any' while using minimal set of rules?
I'm trying to set preferredTypes to prevent * or any as param/property types. I don't want to use most of the recommended rules as it flags up too many issues. I'm trying to ease my team onto using... More on stackoverflow.com
🌐 stackoverflow.com
Newest 'eslint-plugin-jsdoc' Questions - Stack Overflow
Stack Overflow | The World’s Largest Online Community for Developers More on stackoverflow.com
🌐 stackoverflow.com
typescript - ESLint error: Failed to load 'eslint-plugin-jsdoc' in IntelliJ on Ubuntu - troubleshooting tips? - Stack Overflow
I am struggling with ESLint not being able to load in IntelliJ 2023.1 on Ubuntu 22.04. It seems like there are several syntax errors in the libraries, but I just could not belive that. What could I... More on stackoverflow.com
🌐 stackoverflow.com
🌐
GitHub
github.com › gajus › eslint-plugin-jsdoc
GitHub - gajus/eslint-plugin-jsdoc: JSDoc specific linting rules for ESLint. · GitHub
A plugins property can also be supplied to merge with the resulting jsdoc plugin. Other config properties such as files, ignores, etc. are also copied over, though noting that if the specified config produces an array, they will not currently function. There is also a extraRuleDefinitions.forbid option, the details of which are explained in the Advanced docs (under creating your own rules and forbidding structures). import jsdoc from 'eslint-plugin-jsdoc'; const config = [ // configuration included in plugin jsdoc.configs['flat/recommended'], // other configuration objects...
Author   gajus
🌐
Reddit
reddit.com › r/typescript › setting up eslint-plugin-jsdoc
r/typescript on Reddit: Setting up eslint-plugin-jsdoc
October 13, 2024 -

I'm trying to set up eslint-plugin-jsdoc to enforce JSDoc in my TS project, but for some reason the linter is not complaining at all when I don't add JSDoc above a function. My config file is as follows:

{
  "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
  "env": {
    "node": true,
    "es6": true
  },
  "parserOptions": {
    "ecmaVersion": 2021
  },
  "plugins": ["jsdoc"],
  "rules": {
    ...
  }
}

To my (limited) knowledge, as long as I have the recommended rules, the linter should enforce JSDocs for every function. Could someone please help me understand why this isn't working? I do have both ESLint and eslint-plugin-jsdoc installed:

  "devDependencies": {
    "@eslint/js": "^9.12.0",
    "@types/eslint__js": "^8.42.3",
    "@types/node": "^22.7.4",
    "eslint": "^9.12.0",
    "eslint-plugin-jsdoc": "^50.3.2",
    "globals": "^15.11.0",
    "tsx": "^4.19.1",
    "typescript": "^5.6.3",
    "typescript-eslint": "^8.8.1"
  }
🌐
Stack Overflow
stackoverflow.com › questions › tagged › eslint-plugin-jsdoc
Newest 'eslint-plugin-jsdoc' Questions - Stack Overflow
But whenever we export a TS type (or interface), we're warned if we don't have a jsdoc block on not only the type itself, but also on each ... ... I am writing a TypeScript project, which is meant to be run on Node (after transpilation). I have ESLint with plugins: @typescript-eslint and eslint-plugin-jsdoc.
Find elsewhere
🌐
GitHub
github.com › Automattic › eslint-plugin-jsdoc-alignment
GitHub - Automattic/eslint-plugin-jsdoc-alignment
This plugin was designed just to check the alignments for the tags param, arg, argument, property, and prop. It can be used along eslint-plugin-jsdoc.
Author   Automattic
🌐
Stack Overflow
stackoverflow.com › questions › 55378746 › eslint-plugin-jsdoc-does-not-get-executed
eslint-plugin-jsdoc does not get executed
I've followed the instructions in the docs - installed the plugin locally, added it to plugins in .eslintrc, added the rules, now when I run npm run lint - my previous linting rules get checked, bu...
🌐
UNPKG
app.unpkg.com › eslint-plugin-jsdoc@62.5.4
eslint-plugin-jsdoc
February 7, 2026 - JSDoc linting rules for ESLint.
🌐
ESLint
eslint.org › docs › latest › rules › require-jsdoc
require-jsdoc - ESLint - Pluggable JavaScript Linter
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
🌐
ESLint
eslint.org › docs › latest › rules › valid-jsdoc
valid-jsdoc - ESLint - Pluggable JavaScript Linter
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
🌐
TypeScript Analyzer
rich-newman.github.io › typescript-analyzer-eslint-prettier › setupjsdoc.html
Set Up for JSDoc Plugin | TypeScript Analyzer (ESLint, Prettier)
On the Tools/Options/TypeScript Analyzer/ESLint screen, check that both ‘Enable local config (.eslintrc.js)’ and ‘Enable local node_modules’ are set to True, which is the default. Test the rules work. Open app.js, and replace the code with the code below. This is taken from the plugin docs, and is the first example of code that fails with the plugin enabled. ... You should get a jsdoc/check-access warning ‘Missing valid JSDoc @access level’ in the Error List, along with other errors and warnings.
🌐
ESLint
eslint.org › blog › 2018 › 11 › jsdoc-end-of-life
End-of-Life for Built-in JSDoc Support in ESLint
If you would like to continue checking JSDoc comments using ESLint, we suggest using the community-supported eslint-plugin-jsdoc plugin.
🌐
DEV Community
dev.to › thejaredwilcurt › comment › 1of4e
Everything TS is trying to do is done better with eslint-plugin-jsdoc. It let... - DEV Community
May 17, 2022 - Everything TS is trying to do is done better with eslint-plugin-jsdoc. It lets you document the types, and as you write your code your editor will do the exact same thing it would with TS types.
🌐
Reddit
reddit.com › r/javascript › an eslint plugin to enforce `@throws` in jsdoc and prevent hidden exceptions
r/javascript on Reddit: An ESLint plugin to enforce `@throws` in JSDoc and prevent hidden exceptions
May 26, 2025 -

I created an ESLint plugin that enforces the use of `@throws` (or `@exception`) in JSDoc comments for functions that throw, or that call other functions documented to throw.

The idea is to bring some of the clarity of Java-style checked exceptions to JavaScript, making exception flow more explicit and less error-prone.

Features:

  • Flags undocumented `@throw` statements

  • Flags implicit propagation of exceptions

  • Adds `@throws` tags automatically with fixer support

  • Fully type-aware using `@typescript-eslint`

  • Supports Promise rejections too

🌐
HackerOne
pullrequest.com › blog › leveraging-jsdoc-for-better-code-documentation-in-javascript
Leveraging JSDoc for Better Code Documentation in ...
April 5, 2024 - This plugin checks the correctness of JSDoc comments with respect to syntax and, optionally, their alignment with the actual code. npm install eslint --save-dev npm install eslint-plugin-jsdoc --save-dev
🌐
CodeSandbox
codesandbox.io › examples › package › eslint-plugin-jsdoc
eslint-plugin-jsdoc examples - CodeSandbox
Use this online eslint-plugin-jsdoc playground to view and fork eslint-plugin-jsdoc example apps and templates on CodeSandbox.
🌐
Npm
npm.io › package › eslint-plugin-jsdoc
Eslint-plugin-jsdoc NPM | npm.io
Problems reported by rules which have a wrench :wrench: below can be fixed automatically by running ESLint on the command line with --fix option. Note that a number of fixable rules have an enableFixer option which can be set to false to disable the fixer (or in the case of check-param-names, check-property-names, and no-blank-blocks, set to true to enable a non-default-recommended fixer). ... @es-joy/jsdoccommentare-docs-informativecomment-parserdebugescape-string-regexpespreeesqueryparse-importssemverspdx-expression-parsesynckit