iamturns / eslint-config-airbnb-typescript

Airbnb's ESLint config with TypeScript support
MIT License
1.05k stars 98 forks source link

Consider using `@typescript-eslint/class-methods-use-this` #344

Open slifty opened 7 months ago

slifty commented 7 months ago

There is a new @typescript-eslint/class-methods-use-this rule which makes it possible to disable the rule in the case of overrides and interface.

For example, using this (with the updated options) prevents the pesky situation where an abstract class defines some abstract methods which do NOT necessarily use this, but which need to be class methods due to the abstract class definition.

Kenneth-Sills commented 3 months ago

Submitted PR #358 to swap the rule over. But the configuration options mentioned are still off by default.

typescript-eslint is doing their best to avoid type information being required where it's not required, but in this case saying that any class implementing an interface no longer needs any method to use this is just a wide net. I'm more amenable to ignoring methods with override, but I'll leave that up to the project maintainer @iamturns.