id-length
強制執行最小和最大識別符號長度
像 e
、x
、_t
這樣非常短的識別符號名稱,或像 hashGeneratorResultOutputContainerObject
這樣非常長的名稱,可能會使程式碼更難閱讀,並可能降低可維護性。為了防止這種情況,可以強制執行最小和/或最大識別符號長度。
var x = 5; // too short; difficult to understand its purpose without context
規則詳情
此規則強制執行最小和/或最大識別符號長度慣例。
此規則計算 字形群組,而不是使用 String length
。
選項
使用預設選項時,此規則的不正確程式碼範例
在遊樂場中開啟
/*eslint id-length: "error"*/ // default is minimum 2-chars ({ "min": 2 })
var = 5;
obj. = document.body;
var foo = function () { };
try {
dangerousStuff();
} catch () {
// ignore as many do
}
var myObj = { : 1 };
() => { a * a };
class { }
class Foo { () {} }
class Bar { () {} }
class Baz { = 1 }
class Qux { = 1 }
function bar(...) { }
function baz([]) { }
var [] = arr;
var { prop: []} = {};
function qux({}) { }
var { } = {};
var { prop: } = {};
({ prop: obj. } = {});
使用預設選項時,此規則的正確程式碼範例
在遊樂場中開啟
/*eslint id-length: "error"*/ // default is minimum 2-chars ({ "min": 2 })
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 bar(num = 0) { }
class MyClass { }
class Foo { method() {} }
class Bar { #method() {} }
class Baz { field = 1 }
class Qux { #field = 1 }
function baz(...args) { }
function qux([longName]) { }
var { prop } = {};
var { prop: [longName] } = {};
var [longName] = arr;
function foobar({ prop }) { }
function foobaz({ a: prop }) { }
var { prop } = {};
var { a: prop } = {};
({ prop: obj.longName } = {});
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"
允許指定識別符號名稱的陣列"exceptionPatterns"
字串陣列,表示正規表示式模式,允許符合任何模式的識別符號。
min
使用 { "min": 4 }
選項時,此規則的不正確程式碼範例
在遊樂場中開啟
/*eslint id-length: ["error", { "min": 4 }]*/
var = 5;
. = document.body;
function () { };
try {
dangerousStuff();
} catch () {
// ignore as many do
}
var myObj = { : 1 };
() => { val * val };
class { }
class { () {} }
function (...) { }
var { } = {};
var { prop: } = {};
var [] = arr;
var { prop: []} = {};
({ prop: . } = {});
使用 { "min": 4 }
選項時,此規則的正確程式碼範例
在遊樂場中開啟
/*eslint id-length: ["error", { "min": 4 }]*/
var value = 5;
function func() { return 42; }
object.element = document.body;
var foobar = function (event) { /* do stuff */ };
try {
dangerousStuff();
} catch (error) {
// ignore as many do
}
var myObj = { apple: 1 };
(value) => { value * value };
function foobaz(value = 0) { }
class MyClass { }
class Foobar { method() {} }
function barbaz(...args) { }
var { prop } = {};
var [longName] = foo;
var { a: [prop] } = {};
var { a: longName } = {};
({ prop: object.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 }]*/
var = 5;
function () { return 42; }
obj. = document.body;
var foo = function () { /* do stuff */ };
try {
dangerousStuff();
} catch () {
// ignore as many do
}
() => { return !reallyLongArgName; };
var [] = arr;
使用 { "max": 10 }
選項時,此規則的正確程式碼範例
在遊樂場中開啟
/*eslint id-length: ["error", { "max": 10 }]*/
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; };
var [first] = arr;
properties
使用 { "properties": "never" }
選項時,此規則的正確程式碼範例
在遊樂場中開啟
/*eslint id-length: ["error", { "properties": "never" }]*/
var myObj = { a: 1 };
({ a: obj.x.y.z } = {});
({ prop: obj.i } = {});
exceptions
使用 { "exceptions": ["x", "y", "z", "ζ"] }
選項時,此規則的額外正確程式碼範例
在遊樂場中開啟
/*eslint id-length: ["error", { "exceptions": ["x", "y", "z", "ζ"] }]*/
var x = 5;
function y() { return 42; }
obj.x = document.body;
var foo = function (x) { /* do stuff */ };
try {
dangerousStuff();
} catch (x) {
// ignore as many do
}
(x) => { return x * x; };
var [x] = arr;
const { z } = foo;
const { a: ζ } = foo;
exceptionPatterns
使用 { "exceptionPatterns": ["E|S", "[x-z]"] }
選項時,此規則的額外正確程式碼範例
在遊樂場中開啟
/*eslint id-length: ["error", { "exceptionPatterns": ["E|S", "[x-z]"] }]*/
var E = 5;
function S() { return 42; }
obj.x = document.body;
var foo = function (x) { /* do stuff */ };
try {
dangerousStuff();
} catch (x) {
// ignore as many do
}
(y) => {return y * y};
var [E] = arr;
const { y } = foo;
const { a: z } = foo;
相關規則
版本
此規則是在 ESLint v1.0.0 中引入的。