Skip to content

typescript/explicit-function-return-type Restriction ​

What it does ​

This rule enforces that functions have an explicit return type annotation.

Why is this bad? ​

Explicit return types make it clearer what type is returned by a function. Making the type returned by a function obvious allows the reader to infer what the function does and how it can be used from a quick glance.

Another benefit of explicit return types is the potential for a speed up of type checking in large codebases with many large functions.

Example ​

Examples of incorrect code for this rule:

ts
// Should indicate that no value is returned (void)
function test() {
  return;
}

// Should indicate that a number is returned
var fn = function () {
  return 1;
};

// Should indicate that a string is returned
var arrowFn = () => "test";

class Test {
  // Should indicate that no value is returned (void)
  method() {
    return;
  }
}

Examples of correct code for this rule:

ts
// No return value should be expected (void)
function test(): void {
  return;
}

// A return value of type number
var fn = function (): number {
  return 1;
};

// A return value of type string
var arrowFn = (): string => "test";

class Test {
  // No return value should be expected (void)
  method(): void {
    return;
  }
}

How to use ​

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

bash
oxlint --deny typescript/explicit-function-return-type
json
{
  "rules": {
    "typescript/explicit-function-return-type": "error"
  }
}

References ​

Released under the MIT License.