unstale

npm / eslint-plugin-jsdoc

eslint-plugin-jsdoc

What changed in eslint-plugin-jsdoc 61 to 65, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

11 breaking18 new APIs and options2 performance8 behavior and defaults1 tooling90 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

eslint-plugin-jsdoc 6533 changes

Breaking changes 4

  • With publicOnly, the rule now checks members of anonymous default exports and exported object literals.

    65.3.5release notes

  • The rule no longer fixes comments that contain the closing delimiter.

    65.2.3release notes

  • Disallows extra properties in rule options.

    65.0.1release notes

  • Forbids a missing space between the asterisk prefix and content; set allowNoSpaceAfterAsterisk: true to restore the old behavior.

    65.0.0release notes

New APIs and options 4

  • Adds the fixTypeChangingCasts option to no-unnecessary-type-assertion.

    65.3.0release notes

  • Adds the ignoreEmptyLines option to check-alignment.

    65.2.0release notes

  • Adds the enableFixer option to replace Closure-style optional types.

    65.1.0release notes

  • Allows -any within the tags array to apply alignment, or lack thereof, to all tags.

    65.0.0release notes

Performance 1

  • The no-undefined-types and require-returns-check rules parse a file's JSDoc blocks only once, improving performance.

    65.3.4release notes

Fixes and other changes 24

  • The rule no longer exits early when TypeScript is found.

    65.3.11release notes

  • Supports string any contexts and contexts without comment.

    65.3.10release notes

  • Supports string any contexts and contexts without comment.

    65.3.10release notes

  • Counts template names used as indexed-access indexes, so the rule recognizes those uses.

    65.3.9release notes

  • Counts template names used in other templates' constraints and defaults, so the rule recognizes those uses.

    65.3.9release notes

  • The rule no longer re-escapes existing import names and uses a valid identifier for default imports.

    65.3.8release notes

  • The check-template-names, no-undefined-types, and require-template rules allow spaces around the = of a @template default.

    65.3.7release notes

  • The rule now keeps a hashbang on the first line when adding @import.

    65.3.6release notes

  • Only treats @public, @private, and @protected as redundant on class members with typed.

    65.3.3release notes

  • The rule no longer strips @default from getters and setters.

    65.3.2release notes

  • The rule now predefines global types from TypeScript's standard library, avoiding reports that those types are undefined.

    65.3.1release notes

  • Keeps description text when maxBlockLines removes excess blank lines.

    65.2.6release notes

  • Added lines use CRLF when the source uses CRLF.

    65.2.5release notes

  • Uses CRLF for added lines when the source uses CRLF.

    65.2.4release notes

  • Uses CRLF for added lines when the source uses CRLF.

    65.2.4release notes

  • Uses CRLF for added lines when the source uses CRLF.

    65.2.4release notes

  • Recognizes export import aliases declared in a same-file namespace.

    65.2.2release notes

  • Recognizes enums, enum members, and values declared in a same-file namespace.

    65.2.2release notes

  • When reordering params, the fixer moves the closing delimiter to its own line.

    65.2.1release notes

  • Lines added by fixers use CRLF when the source uses CRLF.

    65.2.1release notes

  • New tags are added after the last line of the previous tag, and one-line blocks remain valid.

    65.2.1release notes

  • Avoids resetting section indentation when inline tags are present.

    65.1.0release notes

  • Handles optional types on all tags and across several lines.

    65.1.0release notes

  • Reports opening-line indentation on that line.

    65.0.2release notes

eslint-plugin-jsdoc 6435 changes

Breaking changes 2

New APIs and options 3

  • Adds a rule mirroring typescript-eslint's ban-ts-comments rule.

    64.5.0release notes

  • Adds the preferConstToLiteralTuples option to the rule.

    64.3.5release notes

  • Adds a rule for checking @type assertions.

    64.3.0release notes

Performance 1

  • Only tries TypeScript when the rule is enabled, avoiding unnecessary TypeScript checks.

    64.5.4release notes

Behavior and default changes 3

  • Adds LibreJS tag support to the rule.

    64.4.0release notes

  • Adds LibreJS tag support to the rule.

    64.4.0release notes

  • The rule now provides an order fixer and suggestions, helping developers correct parameter-name ordering issues.

    64.2.0release notes

Fixes and other changes 26

  • [@link] targets now check properties within export class declarations.

    64.5.3release notes

  • The optional TypeScript peer dependency is set to any, undoing a breaking change.

    64.5.2release notes

  • TypeScript is specified as an optional peer dependency, so it is not required for users who do not need it.

    64.5.1release notes

  • The rule merges stacked line comments into a single JSDoc block.

    64.3.10release notes

  • Recognizes class members from the class's own JSDoc when checking for undefined types.

    64.3.9release notes

  • Keys positions by file to avoid positions being shared across files.

    64.3.8release notes

  • Drops suggestions.

    64.3.8release notes

  • Recognizes sibling class members from a property's JSDoc.

    64.3.7release notes

  • Avoids treating object annotations that clarify method argument types as redundant.

    64.3.6release notes

  • Handles array literal annotations with literal or union-of-literals element types that narrow the element type.

    64.3.6release notes

  • The rule no longer flags array-to-tuple assertions.

    64.3.5release notes

  • Avoids crashing when the rule encounters custom languages.

    64.3.4release notes

  • Handles the "any" context and avoids adding an extra line break when multiline text is already present.

    64.3.3release notes

  • Strips initial line breaks when text is present, whether or not it includes tags.

    64.3.3release notes

  • The rule's fixer now handles redundant const.

    64.3.2release notes

  • The rule now handles generics.

    64.3.2release notes

  • The rule now handles parenthesized expressions.

    64.3.2release notes

  • The rule now skips interpolated template literals.

    64.3.2release notes

  • The rule now skips mismatched nested casts.

    64.3.2release notes

  • The rule now provides an autofixer for unnecessary type assertions.

    64.3.2release notes

  • The rule now allows unknown casts.

    64.3.2release notes

  • The rule better supports assertions involving arrays and objects.

    64.3.2release notes

  • The rule no longer flags assertions on any.

    64.3.2release notes

  • The rule no longer flags placeholder unions.

    64.3.2release notes

  • Avoids multiple warnings when typescript-eslint is not referenced.

    64.3.1release notes

  • Resumes support for CommonJS via require(esm).

    64.0.1release notes

eslint-plugin-jsdoc 6321 changes

Breaking changes 2

New APIs and options 2

Fixes and other changes 17

  • Missing tsdoc configs were added.

    63.3.3release notes

  • The fixer now supports 1-line JSDoc blocks.

    63.3.2release notes

  • The rule minimally escapes link targets instead of applying encodeURI.

    63.3.1release notes

  • Autofix now handles delimiter-colliding labels via an escape round-trip.

    63.3.0release notes

  • The rule now ignores Markdown code spans.

    63.0.14release notes

  • Fixes CJS builds, improving use of the package in CommonJS environments.

    63.0.12release notes

  • Skips overloads when searching for method comment blocks, fixing comment detection.

    63.0.11release notes

  • Allows scoped packages in declaration references.

    63.0.10release notes

  • The check-template-names, require-template, and valid-types rules keep commas inside @template default values.

    63.0.9release notes

  • Detects template usage in @augments, @extends, and @implements types.

    63.0.8release notes

  • Predefines Iterable and Iterator types so no-undefined-types no longer treats them as undefined.

    63.0.7release notes

  • Frees comments after each file, preventing them from being retained across files.

    63.0.6release notes

  • The rule now checks descendant scopes for variables, fixing incorrect undefined-type reports.

    63.0.5release notes

  • The tsModule check can now catch multiple modules.

    63.0.4release notes

  • The rule now treats TypeScript module variables as defined.

    63.0.3release notes

  • Typedef returns that may be void are now allowed.

    63.0.2release notes

  • Preserves start and ending delimiters to avoid errors with single-line tags.

    63.0.1release notes

eslint-plugin-jsdoc 6222 changes

Breaking changes 2

  • The rule now errors if a user blocks @property.

    62.7.1release notes

  • Node.js ^20.19.0, ^22.13.0, or >=24 is now required.

    62.0.0release notes

New APIs and options 5

  • Adds a recommended TSDoc ruleset for configuring eslint-plugin-jsdoc.

    62.8.0release notes

  • Adds the startLinesWithNoTags option to tag-lines.

    62.6.0release notes

  • Adds the boolean option trailingPunctuationMultilineOnly to support trailing punctuation only on multiline types.

    62.4.0release notes

  • Adds the objectTypeBracketSpacing option to control bracket spacing for object types.

    62.3.0release notes

  • The jsdoccomment setting is now available to control comment finding for invoked expressions.

    62.0.0release notes

Behavior and default changes 4

  • The rule now allows Typedoc include and includeCode, TSDoc inheritDoc and inheritdoc, and label as inline tags, and adds TSDoc and Typedoc tags.

    62.5.0release notes

  • Inline inheritDoc, inheritdoc, include, includeCode, and label tags no longer trigger the rule.

    62.5.0release notes

  • The rule now allows Typedoc include and includeCode, and TSDoc inheritDoc, inheritdoc, and label as inline tags.

    62.5.0release notes

  • The rule supports strict validation for TypeScript namespaces.

    62.2.0release notes

Tooling 1

  • eslint-plugin-jsdoc supports ESLint 10, allowing developers to use the plugin with that ESLint version.

    62.7.0release notes

Fixes and other changes 10

  • The valid-types rule now allows required default names.

    62.8.1release notes

  • The rule now only fires on TSPropertySignature when it is with TSFunctionNode.

    62.6.1release notes

  • The rule now checks arrow function properties in interfaces (TSPropertySignature).

    62.5.5release notes

  • The rule now ensures template tags are defined.

    62.5.4release notes

  • The rule no longer treats infer type identifiers as undefined.

    62.5.4release notes

  • The config no longer applies deprecated rules, avoiding ESLint warnings.

    62.5.3release notes

  • The config no longer applies deprecated rules, avoiding ESLint warnings.

    62.5.3release notes

  • The valid-types rule allows numeric properties in jsdoc mode.

    62.5.2release notes

  • Stops treating type parameter names as unknown template names.

    62.5.1release notes

  • Treats infer statement types as defined.

    62.0.1release notes

eslint-plugin-jsdoc 6119 changes

Breaking changes 1

  • The rule no longer treats a synchronous throw as a rejection.

    61.4.1release notes

New APIs and options 4

  • Adds checkAllFunctionExpressions to require-jsdoc, forcing checks of FunctionExpressions regardless of context.

    61.6.0release notes

  • Adds the require-rejects rule.

    61.4.0release notes

  • Adds the allowIndentedSections option.

    61.3.0release notes

  • Adds tagExceptions to allow additional lines per tag.

    61.2.0release notes

Behavior and default changes 1

  • The check-tag-names, require-template, and check-template-names rules treat typeParam as a non-preferred alias for template.

    61.5.0release notes

Fixes and other changes 13

  • Allows separate typedefs when checking property names.

    61.6.1release notes

  • The rule’s error message now reflects the proper tag name.

    61.4.2release notes

  • When interfaceExemptsParamsCheck is true, structures with interfaces no longer trigger require-param.

    61.2.1release notes

  • The rule no longer reformats spacing after a delimiter.

    61.2.1release notes

  • The rule now treats parameter names as defined, avoiding false reports for parameter types.

    61.1.12release notes

  • Fixing a missing parent now places it between the child and grandparent.

    61.1.11release notes

  • The rule now checks object-based types or typings when identifying imports as dependencies.

    61.1.10release notes

  • A CJS version is now provided, fixing the reported issue for CommonJS users.

    61.1.9release notes

  • The rule now considers module-scope variables as defined.

    61.1.8release notes

  • The rule now handles resolve.exports errors.

    61.1.7release notes

  • The rule now checks within exports for types.

    61.1.6release notes

  • Made to-valid-identifier a dependency so it is available where the plugin requires it.

    61.1.4release notes

  • Ensures the import is a valid identifier, fixing the rule’s handling of invalid identifiers.

    61.1.3release notes