noUselessThisAlias
Diagnostic Category: lint/complexity/noUselessThisAlias
Since: v1.0.0
Sources:
- Inspired from:
@typescript-eslint/no-this-alias
Description
Section titled DescriptionDisallow useless this
aliasing.
Arrow functions inherits this
from their enclosing scope;
this makes this
aliasing useless in this situation.
Examples
Section titled ExamplesInvalid
Section titled Invalidclass 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 │ }
Valid
Section titled Validclass A { method() { const self = this; return function() { this.g(); return self; } }}
How to configure
Section titled How to configure{ "linter": { "rules": { "complexity": { "noUselessThisAlias": "error" } } }}