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;