class-methods-use-this
Enforce that class methods utilize
this
.
🔧
Some problems reported by this rule are automatically fixable by the --fix
ESLint command line option.
Examples
This rule extends the base eslint/class-methods-use-this
rule.
It adds support for ignoring override
methods or methods on classes that implement an interface.
How to Use
.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"class-methods-use-this": "off",
"@typescript-eslint/class-methods-use-this": "error"
}
};
Options
See eslint/class-methods-use-this
options.
This rule adds the following options:
interface Options extends BaseClassMethodsUseThisOptions {
ignoreOverrideMethods?: boolean;
ignoreClassesThatImplementAnInterface?: boolean;
}
const defaultOptions: Options = {
...baseClassMethodsUseThisOptions,
ignoreOverrideMethods: false,
ignoreClassesThatImplementAnInterface: false,
};
ignoreOverrideMethods
Example of a correct code when ignoreOverrideMethods
is set to true
:
class X {
override method() {}
override property = () => {};
}
ignoreClassesThatImplementAnInterface
Example of a correct code when ignoreClassesThatImplementAnInterface
is set to true
:
class X implements Y {
method() {}
property = () => {};
}
Resources
Taken with ❤️ from ESLint core