no-empty-function
Disallow empty functions.
Extending "plugin:@typescript-eslint/recommended"
in an ESLint configuration enables this rule.
Examples
This rule extends the base eslint/no-empty-function
rule.
It adds support for handling TypeScript specific code that would otherwise trigger the rule.
One example of valid TypeScript specific code that would otherwise trigger the no-empty-function
rule is the use of parameter properties in constructor functions.
How to Use
module.exports = {
// Note: you must disable the base rule as it can report incorrect errors
"no-empty-function": "off",
"@typescript-eslint/no-empty-function": "error"
};
Options
See eslint/no-empty-function
options.
This rule adds the following options:
type AdditionalAllowOptionEntries =
| 'private-constructors'
| 'protected-constructors'
| 'decoratedFunctions'
| 'overrideMethods';
type AllowOptionEntries =
| BaseNoEmptyFunctionAllowOptionEntries
| AdditionalAllowOptionEntries;
interface Options extends BaseNoEmptyFunctionOptions {
allow?: Array<AllowOptionEntries>;
}
const defaultOptions: Options = {
...baseNoEmptyFunctionDefaultOptions,
allow: [],
};
allow: private-constructors
Examples of correct code for the { "allow": ["private-constructors"] }
option:
class Foo {
private constructor() {}
}
allow: protected-constructors
Examples of correct code for the { "allow": ["protected-constructors"] }
option:
class Foo {
protected constructor() {}
}
allow: decoratedFunctions
Examples of correct code for the { "allow": ["decoratedFunctions"] }
option:
@decorator()
function foo() {}
class Foo {
@decorator()
foo() {}
}
allow: overrideMethods
Examples of correct code for the { "allow": ["overrideMethods"] }
option:
abstract class Base {
protected greet(): void {
console.log('Hello!');
}
}
class Foo extends Base {
protected override greet(): void {}
}
Taken with ❤️ from ESLint core