Skip to content
You are currently reading docs for v1.x. Go to the latest docs if you are using newer version.

noUselessThisAlias

Diagnostic Category: lint/complexity/noUselessThisAlias

Since: v1.0.0

Sources:

Disallow useless this aliasing.

Arrow functions inherits this from their enclosing scope; this makes this aliasing useless in this situation.

class A {
method() {
const self = this;
return () => {
return self;
}
}
}
code-block.js:3:15 lint/complexity/noUselessThisAlias  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ This aliasing of this is unnecessary.

1 │ class A {
2 │ method() {
> 3 │ const self = this;
│ ^^^^^^^^^^^
4 │ return () => {
5 │ return self;

ℹ Arrow functions inherits this from their enclosing scope.

ℹ Safe fix: Use this instead of an alias.

1 1 │ class A {
2 2 │ method() {
3 │ - ········const·self·=·this;
4 3 │ return () => {
5 │ - ············return·self;
4 │ + ············return·this;
6 5 │ }
7 6 │ }

class A {
method() {
const self = this;
return function() {
this.g();
return self;
}
}
}
biome.json
{
"linter": {
"rules": {
"complexity": {
"noUselessThisAlias": "error"
}
}
}
}