require-jsdoc
JSDoc 是一个 JavaScript API 文档生成器。它在代码中使用特殊格式的注释来自动生成 API 文档。例如,这是一个函数的 JSDoc 注释的样子:
¥JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:
/**
* Adds two numbers together.
* @param {int} num1 The first number.
* @param {int} num2 The second number.
* @returns {int} The sum of the two numbers.
*/
function sum(num1, num2) {
return num1 + num2;
}
一些风格指南要求所有函数的 JSDoc 注释作为解释函数行为的一种方式。
¥Some style guides require JSDoc comments for all functions as a way of explaining function behavior.
规则详情
¥Rule Details
此规则要求指定节点的 JSDoc 注释。支持的节点:
¥This rule requires JSDoc comments for specified nodes. Supported nodes:
-
"FunctionDeclaration"
-
"ClassDeclaration"
-
"MethodDefinition"
-
"ArrowFunctionExpression"
-
"FunctionExpression"
选项
¥Options
此规则有一个对象选项:
¥This rule has a single object option:
-
"require"
需要指定节点的 JSDoc 注释¥
"require"
requires JSDoc comments for the specified nodes
默认选项设置为:
¥Default option settings are:
{
"require-jsdoc": ["error", {
"require": {
"FunctionDeclaration": true,
"MethodDefinition": false,
"ClassDeclaration": false,
"ArrowFunctionExpression": false,
"FunctionExpression": false
}
}]
}
require
使用 { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true, "FunctionExpression": true } }
选项的此规则的错误代码示例:
¥Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true, "FunctionExpression": true } }
option:
/*eslint "require-jsdoc": ["error", {
"require": {
"FunctionDeclaration": true,
"MethodDefinition": true,
"ClassDeclaration": true,
"ArrowFunctionExpression": true,
"FunctionExpression": true
}
}]*/
function foo() {
return 10;
}
var bar = () => {
return 10;
};
class Foo {
bar() {
return 10;
}
}
var bar = function() {
return 10;
};
var bar = {
bar: function() {
return 10;
},
baz() {
return 10;
}
};
使用 { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true, "FunctionExpression": true } }
选项的此规则的正确代码示例:
¥Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true, "FunctionExpression": true } }
option:
/*eslint "require-jsdoc": ["error", {
"require": {
"FunctionDeclaration": true,
"MethodDefinition": true,
"ClassDeclaration": true,
"ArrowFunctionExpression": true,
"FunctionExpression": true
}
}]*/
/**
* It returns 10
*/
function foo() {
return 10;
}
/**
* It returns test + 10
* @params {int} test - some number
* @returns {int} sum of test and 10
*/
var bar = (test) => {
return test + 10;
}
/**
* It returns 10
*/
var bar = () => {
return 10;
}
/**
* It returns 10
*/
var bar = function() {
return 10;
}
var array = [1,2,3];
array.filter(function(item) {
return item > 2;
});
/**
* A class that can return the number 10
*/
class Foo {
/**
* It returns 10
*/
bar() {
return 10;
}
}
/**
* It returns 10
*/
var bar = function() {
return 10;
};
var bar = {
/**
* It returns 10
*/
bar: function() {
return 10;
},
/**
* It returns 10
*/
baz() {
return 10;
}
};
setTimeout(() => {}, 10); // since it's an anonymous arrow function
何时不使用
¥When Not To Use It
如果你的函数不需要 JSDoc,则可以关闭此规则。
¥If you do not require JSDoc for your functions, then you can leave this rule off.
相关规则
版本
此规则是在 ESLint v1.4.0 中引入,并在 v9.0.0-alpha.0 中删除。