---
description: 'Disallow aliasing `this`.'
---

> 🛑 This file is source code, not the primary documentation location! 🛑
>
> See **https://typescript-eslint.io/rules/no-this-alias** for documentation.

This rule prohibits assigning variables to `this`.

## Rule Details

Assigning a variable to `this` instead of properly using arrow lambdas may be a symptom of pre-ES6 practices
or not managing scope well.

Instead of storing a reference to `this` and using it inside a `function () {`:

```js
const self = this;
>
setTimeout(function () {
    self.doWork();
});
```

Use `() =>` arrow lambdas, as they preserve `this` scope for you:

```js
setTimeout(() => {
  this.doWork();
});
```

Examples of **incorrect** code for this rule:

(see the rationale above)

Examples of **correct** code for this rule:

(see the rationale above)

## When Not To Use It

If you need to assign `this` to variables, you shouldn’t use this rule.
