In TypeScript a function can return a value explicitly, by using a `return` statement with a value, or implicitly, at the end of the function or by a `return` with no value, resulting in the function returning `undefined`. Implicit returns of `undefined` not declared in the function signature, can be confusing for the maintainer.

This rule ensures that `returns` are either all explicit or all implicit, or the function signatures makes the implicit `return` obvious.

## Noncompliant Code Example

    function foo(a) { // Noncompliant, function exits without "return"
      if (a == 1) {
        return true;
      }
    }

## Compliant Solution

    function foo(a): boolean | undefined {
      if (a == 1) {
        return true;
      }
    }