Eslint
规则 | Rules

id-length

enforce minimum and maximum identifier lengths (id-length)

极短的标识符名称一样ex_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中引入的。

资源