Skip to content

eslint/id-length Style ​

What it does ​

This rule enforces a minimum and/or maximum identifier length convention by counting the graphemes for a given identifier.

Why is this bad? ​

Very short identifier names like e, x, _t or very long ones like hashGeneratorResultOutputContainerObject can make code harder to read and potentially less maintainable. To prevent this, one may enforce a minimum and/or maximum identifier length.

Examples ​

Examples of incorrect code for this rule:

js
/*eslint id-length: "error"*/
// default is minimum 2-chars ({ "min": 2 })

const x = 5;
obj.e = document.body;
const foo = function(e) {};
try {
  dangerousStuff();
} catch (e) {
  // ignore as many do
}
const myObj = { a: 1 };
((a) => {
  a * a;
});
class y {}
class Foo {
  x() {}
}
class Bar {
  #x() {}
}
class Baz {
  x = 1;
}
class Qux {
  #x = 1;
}
function bar(...x) {}
function baz([x]) {}
const [z] = arr;
const { prop: [i] } = {};
function qux({ x }) {}
const { j } = {};
const { prop: a } = {};
({ prop: obj.x } = {});

Examples of correct code for this rule:

js
/*eslint id-length: "error"*/
// default is minimum 2-chars ({ "min": 2 })

const num = 5;
function _f() {
  return 42;
}
function _func() {
  return 42;
}
obj.el = document.body;
const foo = function(evt) {/* do stuff */};
try {
  dangerousStuff();
} catch (error) {
  // ignore as many do
}
const 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]) {}
const { prop } = {};
const { prop: [name] } = {};
const [longName] = arr;
function foobar({ prop }) {}
function foobaz({ a: prop }) {}
const { a: property } = {};
({ prop: obj.longName } = {});
const data = { "x": 1 }; // excused because of quotes
data["y"] = 3; // excused because of calculated property access

How to use ​

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny id-length
json
{
  "rules": {
    "id-length": "error"
  }
}

References ​

Released under the MIT License.