Assigning this to a local variable is a way to reference parent context inside inner functions. In TypeScript when using arrow functions this happens automatically.

This rule raises an issue when this is assigned to a local variable.

Noncompliant Code Example

function Foo() {
  let that = this;  // Noncompliant
  that.val = 0;

  setInterval(function() {
    that.val++;
  }, 1000);
}

Compliant Solution

function Foo() {
  this.val = 0;

  setInterval(() => {
    this.val++;
  }, 1000);
}

Exceptions

This rule ignores this used for destructuring.

const { foo, bar } = this;