Как форсировать параметры JSDoc с помощью Eslint
Я бы хотел, чтобы наш линтер работал, когда в JSDoc отсутствуют некоторые параметры в нашем документе JS. Например, я могу заставить JSDoc жаловаться на отсутствующие параметры или возвращать теги, но не для public/private/static/classdesc или функции. Пример правильного кода:
/**
* A cool function
*
* @param {function} fnCallback Callback to call after something cool
* @public
* @static
* @function beCool
*/
Cool.beCool = function (fnCallback) {
Пример неверного кода:
/**
* A cool function
*
* @param {function} fnCallback Callback to call after something cool
*
*/
Cool.beCool = function (fnCallback) {
Правила выглядят так:
//
// JSDoc
//
"require-jsdoc": ["error", {
"require": {
"FunctionDeclaration": false,
"MethodDefinition": true,
"ClassDeclaration": true,
"ArrowFunctionExpression": true,
"FunctionExpression": true
}
}],
"valid-jsdoc": ["error", {
"matchDescription": ".+",
"prefer": {
"arg": "param",
"argument": "param",
"class": "class",
"return": "returns",
"virtual": "abstract"
},
"preferType": {
"Boolean": "boolean",
"Number": "number",
"object": "Object",
"String": "string",
"Any": "any",
"Function": "function",
"RegExp": "regexp",
"date": "Date",
"array": "Array",
"promise": "Promise",
"map": "Map"
},
"requireReturn": false,
"requireReturnType": true,
"requireParamDescription": true,
"requireParamType": true
}]
}