Eslint参考手册
规则 | Rules
no-empty-function
空函数会降低可读性,因为读者需要猜测它是否是有意的。因此,为空函数写一个明确的评论是一个好习惯。
function foo() {
// do nothing.
}
尤其是,箭头函数的空白块可能会让开发人员感到困惑。这与空对象文字非常相似。
list.map(() => {}); // This is a block, would return undefined.
list.map(() => ({})); // This is an empty object.
规则细节
这条规则旨在消除空功能。如果函数包含注释,则该函数不会被视为问题。
此规则的错误代码示例:
/*eslint no-empty-function: "error"*/
/*eslint-env es6*/
function foo() {}
var foo = function() {};
var foo = () => {};
function* foo() {}
var foo = function*() {};
var obj = {
foo: function() {},
foo: function*() {},
foo() {},
*foo() {},
get foo() {},
set foo(value) {}
};
class A {
constructor() {}
foo() {}
*foo() {}
get foo() {}
set foo(value) {}
static foo() {}
static *foo() {}
static get foo() {}
static set foo(value) {}
}
此规则的正确代码示例:
/*eslint no-empty-function: "error"*/
/*eslint-env es6*/
function foo() {
// do nothing.
}
var foo = function() {
// any clear comments.
};
var foo = () => {
bar();
};
function* foo() {
// do nothing.
}
var foo = function*() {
// do nothing.
};
var obj = {
foo: function() {
// do nothing.
},
foo: function*() {
// do nothing.
},
foo() {
// do nothing.
},
*foo() {
// do nothing.
},
get foo() {
// do nothing.
},
set foo(value) {
// do nothing.
}
};
class A {
constructor() {
// do nothing.
}
foo() {
// do nothing.
}
*foo() {
// do nothing.
}
get foo() {
// do nothing.
}
set foo(value) {
// do nothing.
}
static foo() {
// do nothing.
}
static *foo() {
// do nothing.
}
static get foo() {
// do nothing.
}
static set foo(value) {
// do nothing.
}
}
选项
该规则可以选择允许特定种类的功能为空。
-
allow
(string[]
) - 允许空函数的种类列表。列表项是以下字符串中的一部分。一个空的数组([]
)默认情况下。-
"functions"
- 正常功能。 -
"arrowFunctions"
- 箭头功能。 -
"generatorFunctions"
- 发电机功能。 -
"methods"
- 对象文字的类方法和方法shorthands。 -
"generatorMethods"
- 具有生成器的对象文字的类方法和方法shorthands。 -
"getters"
- 吸气剂。 -
"setters"
- Setters。 -
"constructors"
- 类构造函数。
-
允许:功能
选项的正确代码示例{ "allow": ["functions"] }
:
/*eslint no-empty-function: ["error", { "allow": ["functions"] }]*/
function foo() {}
var foo = function() {};
var obj = {
foo: function() {}
};
允许:arrowFunctions
选项的正确代码示例{ "allow": ["arrowFunctions"] }
:
/*eslint no-empty-function: ["error", { "allow": ["arrowFunctions"] }]*/
/*eslint-env es6*/
var foo = () => {};
允许:generatorFunctions
选项的正确代码示例{ "allow": ["generatorFunctions"] }
:
/*eslint no-empty-function: ["error", { "allow": ["generatorFunctions"] }]*/
/*eslint-env es6*/
function* foo() {}
var foo = function*() {};
var obj = {
foo: function*() {}
};
允许:方法
选项的正确代码示例{ "allow": ["methods"] }
:
/*eslint no-empty-function: ["error", { "allow": ["methods"] }]*/
/*eslint-env es6*/
var obj = {
foo() {}
};
class A {
foo() {}
static foo() {}
}
允许:generatorMethods
选项的正确代码示例{ "allow": ["generatorMethods"] }
:
/*eslint no-empty-function: ["error", { "allow": ["generatorMethods"] }]*/
/*eslint-env es6*/
var obj = {
*foo() {}
};
class A {
*foo() {}
static *foo() {}
}
允许:getters
选项的正确代码示例{ "allow": ["getters"] }
:
/*eslint no-empty-function: ["error", { "allow": ["getters"] }]*/
/*eslint-env es6*/
var obj = {
get foo() {}
};
class A {
get foo() {}
static get foo() {}
}
允许:setters
选项的正确代码示例{ "allow": ["setters"] }
:
/*eslint no-empty-function: ["error", { "allow": ["setters"] }]*/
/*eslint-env es6*/
var obj = {
set foo(value) {}
};
class A {
set foo(value) {}
static set foo(value) {}
}
允许:构造函数
选项的正确代码示例{ "allow": ["constructors"] }
:
/*eslint no-empty-function: ["error", { "allow": ["constructors"] }]*/
/*eslint-env es6*/
class A {
constructor() {}
}
何时不使用它
如果您不想收到关于空函数的通知,那么禁用此规则是安全的。
相关规则
- 没有空
版
这条规则是在ESLint 2.0.0中引入的。
资源
- 规则来源
- 文档来源
规则 | Rules相关

ESLint 是一个代码规范和错误检查工具,有以下几个特性。所有东西都是可以插拔的。你可以调用任意的 rule api 或者 formatter api 去打包或者定义 rule or formatter。任意的 rule 都是独立的。没有特定的 coding style,你可以自己配置。
主页 | https://eslint.org/ |
源码 | https://github.com/eslint/eslint |
发布版本 | 4.12.0 |