-
Notifications
You must be signed in to change notification settings - Fork 488
Open
Description
The way that documentation.js forces us to document classes is incorrect:
/**
* A foo.
* @param {*} value Value.
*/
class Foo {
constructor(value) {
this.value = value
}
}
/**
* A foo.
*/
class Foo {
/**
* Constructs a new foo.
* @param {*} value Value.
*/
constructor(value) {
this.value = value
}
}
Attempting to use the standard approach will result in documentation not appearing, or the constructor docs take over the class description.
Not only is the documentation.js way unintuitive and a common gotcha, but it causes problems using JSDoc linters that expect a standard approach. This ESLint config will report an error that the constructor is missing JSDoc:
{
"rules": {
"require-jsdoc": ["error", {
"require": {
"ClassDeclaration": true,
"MethodDefinition": true
}
}]
}
}
There is no way to configure the ESLint require-jsdoc
to ignore constructor
. You can't use normal eslint ignore rule directive comments (// eslint-disable-next-line require-jsdoc
) as a workaround due to #1090. You're just stuck 😔
As part of a fix:
- Remove this warning.
- Remove this advice.
Related:
balupton, DonGissel, hugomrdias, dhurlburtusa, Berkmann18 and 3 more
Metadata
Metadata
Assignees
Labels
No labels