跳转到内容

noUnusedVariables

此内容尚不支持你的语言。

biome.json
{
"linter": {
"rules": {
"correctness": {
"noUnusedVariables": "error"
}
}
}
}

Disallow unused variables.

There is an exception to this rule: variables that start with underscore, e.g. let _something;.

The pattern of having an underscore as a prefix of a variable is a very diffuse pattern among programmers, and Biome follows it.

This rule won’t report unused imports. If you want to report unused imports, enable noUnusedImports.

let a = 4;
a++;
code-block.js:1:5 lint/correctness/noUnusedVariables  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This variable a is unused.

> 1 │ let a = 4;
^
2 │ a++;
3 │

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

Unsafe fix: If this is intentional, prepend a with an underscore.

1 - let·a·=·4;
2 - a++;
1+ let·_a·=·4;
2+ _a++;
3 3

function foo() {}
code-block.js:1:10 lint/correctness/noUnusedVariables  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This function foo is unused.

> 1 │ function foo() {}
^^^
2 │

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

Unsafe fix: If this is intentional, prepend foo with an underscore.

1 - function·foo()·{}
1+ function·_foo()·{}
2 2

function foo() {
foo();
}
code-block.js:1:10 lint/correctness/noUnusedVariables  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This function foo is unused.

> 1 │ function foo() {
^^^
2 │ foo();
3 │ }

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

Unsafe fix: If this is intentional, prepend foo with an underscore.

1 - function·foo()·{
2 - ····foo();
1+ function·_foo()·{
2+ ····_foo();
3 3 }
4 4

const foo = () => {
foo();
};
code-block.js:1:7 lint/correctness/noUnusedVariables  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This variable foo is unused.

> 1 │ const foo = () => {
^^^
2 │ foo();
3 │ };

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

Unsafe fix: If this is intentional, prepend foo with an underscore.

1 - const·foo·=·()·=>·{
2 - ····foo();
1+ const·_foo·=·()·=>·{
2+ ····_foo();
3 3 };
4 4

export function f<T>() {}
code-block.ts:1:19 lint/correctness/noUnusedVariables  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This type parameter T is unused.

> 1 │ export function f<T>() {}
^
2 │

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

Unsafe fix: If this is intentional, prepend T with an underscore.

1 - export·function·f<T>()·{}
1+ export·function·f<_T>()·{}
2 2

const { brand } = car;
code-block.js:1:9 lint/correctness/noUnusedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This variable brand is unused.

> 1 │ const { brand } = car;
^^^^^
2 │

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

function foo(b) {
console.log(b)
};
foo();
export function foo(_unused) {}
function used_overloaded(): number;
function used_overloaded(s: string): string;
function used_overloaded(s?: string) {
return s;
}
used_overloaded();

By default, unused variables declared inside destructured objects are ignored if the destructuring pattern also contains a rest property. (See the rule options if you want to enable these checks).

const car = { brand: "Tesla", year: 2019, countryCode: "US" };
const { brand, ...rest } = car;
console.log(rest);

Whether to ignore unused variables declared inside destructured objects containing rest properties (such as const { a, b, ...rest } = obj.

Default: true

biome.json
{
"linter": {
"rules": {
"correctness": {
"noUnusedVariables": {
"options": {
"ignoreRestSiblings": false
}
}
}
}
}
}
const car = { brand: "Tesla", year: 2019, countryCode: "US" };
const { brand, ...other } = car;
console.log(other);
code-block.js:2:9 lint/correctness/noUnusedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This variable brand is unused.

1 │ const car = { brand: “Tesla”, year: 2019, countryCode: “US” };
> 2 │ const { brand, …other } = car;
^^^^^
3 │ console.log(other);
4 │

Unused variables are often the result of typos, incomplete refactors, or other sources of bugs.

You can enable the ignoreRestSiblings option to ignore unused variables inside destructured objects with rest properties.

const car = { brand: "Tesla", year: 2019, countryCode: "US" };
const { brand: _, ...other } = car;
console.log(other);