title: Why don't I receive "property does not exist on X" on objects returned by lambdas?
body: <p>I normally receive a compile error when I accidentally include excess properties on an object.</p>
  <p>Unfortunately, I don't seem to be receiving the same error when including excess properties on objects returned by lambdas.</p>
  <p>Why is this?</p>
  <pre class="lang-js prettyprint-override"><code>interface Foo {
    bar: boolean;
  }
  
  const foo1: () =&gt; Foo = () =&gt; {
    return {
      bar: false,
      iShouldNotBeHere: true // No error, why?
    };
  };
  
  const foo2 = (): Foo =&gt; {
    return {
      bar: false,
      iShouldNotBeHere: true // Error! GOOD!
    };
  };
  
  function foo3(): Foo {
    return {
      bar: false,
      iShouldNotBeHere: true // Error! GOOD!
    };
  }
  </code></pre>
  <hr />
  <p>TypeScript Version 4.1.2</p>