Skip to content

eslint/no-empty-function Restriction ​

What it does ​

Disallows the usages of empty functions

Why is this bad? ​

Empty functions can reduce readability because readers need to guess whether it's intentional or not. So writing a clear comment for empty functions is a good practice.

Configuration ​

You may pass an object containing a list of allowed function kinds. For example:

json
// oxlint.json
{
  "rules": {
    "no-empty-function": ["error", { "allow": ["functions"] }]
  }
}

allow accepts the following values:

  • "functions"
  • "arrowFunctions"
  • "generatorFunctions"
  • "methods"
  • "generatorMethods"
  • "getters"
  • "setters"
  • "constructors"
  • "privateConstructors"
  • "protectedConstructors"
  • "asyncFunctions"
  • "asyncMethods"
  • "decoratedFunctions"
  • "overrideMethods"

Example ​

Examples of incorrect code for this rule:

typescript
function foo() {}

const bar = () => {};

class Foo {
  constructor();
  someMethod() {}
  set bar(value) {}
}

Examples of correct code for this rule:

typescript
function foo() {
  // do nothing
}

function foo() {
  return;
}
const add = (a, b) => a + b;

class Foo {
  // constructor body is empty, but it declares a private property named
  // `_name`
  constructor(private _name: string) {}

  public get name() {
    return this._name;
  }
}

How to use ​

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny no-empty-function
json
{
  "rules": {
    "no-empty-function": "error"
  }
}

References ​

Released under the MIT License.