id-length
enforce minimum and maximum identifier lengths (id-length)
极短的标识符名称一样e
,x
,_t
或者很长的像hashGeneratorResultOutputContainerObject
可以使代码更难阅读和可能少维护。为了防止这种情况,可以强制实施最小和/或最大标识符长度。
var x = 5; // too short; difficult to understand its purpose without context
规则细节
该规则强制执行最小和/或最大标识符长度约定。
选项
此规则的默认选项的代码错误
示例:
/*eslint id-length: "error"*/ // default is minimum 2-chars { "min": 2 })
/*eslint-env es6*/
var x = 5;
obj.e = document.body;
var foo = function (e) { };
try {
dangerousStuff(
} catch (e) {
// ignore as many do
}
var myObj = { a: 1 };
(a) => { a * a };
class x { }
class Foo { x() {} }
function foo(...x) { }
var { x } = {};
var { x: a} = {};
var { a: [x]} = {};
{ prop: obj.x }) = {};
具有默认选项的此规则的正确
代码示例:
/*eslint id-length: "error"*/ // default is minimum 2-chars { "min": 2 })
/*eslint-env es6*/
var num = 5;
function _f() { return 42; }
function _func() { return 42; }
obj.el = document.body;
var foo = function (evt) { /* do stuff */ };
try {
dangerousStuff(
} catch (error) {
// ignore as many do
}
var myObj = { apple: 1 };
(num) => { num * num };
function foo(num = 0) { }
class MyClass { }
class Foo { method() {} }
function foo(...args) { }
var { prop } = {};
var { prop: a } = {};
var { prop: [x] } = {};
{ prop: obj.longName }) = {};
var data = { "x": 1 }; // excused because of quotes
data["y"] = 3; // excused because of calculated property access
此规则具有"min"
对象属性的简写整数选项。
此规则的错误
代码示例至少为4:
/*eslint id-length: ["error", 4]*/
/*eslint-env es6*/
var val = 5;
obj.e = document.body;
function (e) { };
try {
dangerousStuff(
} catch (e) {
// ignore as many do
}
var myObj = { a: 1 };
(val) => { val * val };
class x { }
class Foo { x() {} }
function foo(...x) { }
var { x } = {};
var { x: a} = {};
var { a: [x]} = {};
{ prop: obj.x }) = {};
此规则的正确
代码示例至少为4:
/*eslint id-length: ["error", 4]*/
/*eslint-env es6*/
var value = 5;
function func() { return 42; }
obj.element = document.body;
var foo = function (event) { /* do stuff */ };
try {
dangerousStuff(
} catch (error) {
// ignore as many do
}
var myObj = { apple: 1 };
(value) => { value * value };
function foobar(value = 0) { }
class MyClass { }
class Foobar { method() {} }
function foobar(...args) { }
var { prop } = {};
var { prop: a } = {};
var { prop: [x] } = {};
{ prop: obj.name }) = {};
var data = { "x": 1 }; // excused because of quotes
data["y"] = 3; // excused because of calculated property access
该规则有一个对象选项:
"min"
(默认值:2)强制实施最小标识符长度
"max"
(默认:Infinity)强制实施最大标识符长度
"properties": always
(默认)强制执行属性名称的标识符长度约定
"properties": never
忽略属性名称的标识符长度约定
"exceptions"
允许指定标识符名称的数组
min
此规则的错误
代码示例包含以下{ "min": 4 }
选项:
/*eslint id-length: ["error", { "min": 4 }]*/
/*eslint-env es6*/
var val = 5;
obj.e = document.body;
function (e) { };
try {
dangerousStuff(
} catch (e) {
// ignore as many do
}
var myObj = { a: 1 };
(val) => { val * val };
class x { }
class Foo { x() {} }
function foo(...x) { }
var { x } = {};
var { x: a} = {};
var { a: [x]} = {};
{ prop: obj.x }) = {};
此规则的正确
代码示例包含以下{ "min": 4 }
选项:
/*eslint id-length: ["error", { "min": 4 }]*/
/*eslint-env es6*/
var value = 5;
function func() { return 42; }
obj.element = document.body;
var foo = function (event) { /* do stuff */ };
try {
dangerousStuff(
} catch (error) {
// ignore as many do
}
var myObj = { apple: 1 };
(value) => { value * value };
function foobar(value = 0) { }
class MyClass { }
class Foobar { method() {} }
function foobar(...args) { }
var { prop } = {};
var { prop: a } = {};
var { prop: [x] } = {};
{ prop: obj.name }) = {};
var data = { "x": 1 }; // excused because of quotes
data["y"] = 3; // excused because of calculated property access
max
此规则的错误
代码示例包含以下{ "max": 10 }
选项:
/*eslint id-length: ["error", { "max": 10 }]*/
/*eslint-env es6*/
var reallyLongVarName = 5;
function reallyLongFuncName() { return 42; }
obj.reallyLongPropName = document.body;
var foo = function (reallyLongArgName) { /* do stuff */ };
try {
dangerousStuff(
} catch (reallyLongErrorName) {
// ignore as many do
}
(reallyLongArgName) => { return !reallyLongArgName; };
此规则的正确
代码示例包含以下{ "max": 10 }
选项:
/*eslint id-length: ["error", { "max": 10 }]*/
/*eslint-env es6*/
var varName = 5;
function funcName() { return 42; }
obj.propName = document.body;
var foo = function (arg) { /* do stuff */ };
try {
dangerousStuff(
} catch (error) {
// ignore as many do
}
(arg) => { return !arg; };
性能
此规则的正确
代码示例包含以下{ "properties": "never" }
选项:
/*eslint id-length: ["error", { "properties": "never" }]*/
/*eslint-env es6*/
var myObj = { a: 1 };
{ a: obj.x.y.z }) = {};
{ prop: obj.i }) = {};
例外
此规则的附加正确
代码示例包含以下{ "exceptions": ["x"] }
选项:
/*eslint id-length: ["error", { "exceptions": ["x"] }]*/
/*eslint-env es6*/
var x = 5;
function x() { return 42; }
obj.x = document.body;
var foo = function (x) { /* do stuff */ };
try {
dangerousStuff(
} catch (x) {
// ignore as many do
}
(x) => { return x * x; };
相关规则
- max-len
- new-cap
- func-names
- camelcase
版本
这条规则是在 ESLint 1.0.0中引入的。