title: Typescript Interfaces and Promises behaviour
body: <p>Could anybody clarify why after Promise, function does not check IUser properly? Is it expected?</p>
  <pre><code>interface IUser {
    email: string;
    name: string;
  }
  
  const testFn = (user: IUser) =&gt; { console.log(user); };
  
  testFn({
    email: 'email',
    name: 'name',
    admin: true // Object literal may only specify known properties, and 'admin' does not exist in type 'IUser'
  });
  
  Promise.resolve({
    email: 'email',
    name: '1',
    admin: true // but this passes
  }).then(user =&gt; testFn(user));
  </code></pre>
  <p>Live example <a href="https://codesandbox.io/s/j2ywh?file=/index.ts" rel="nofollow noreferrer">https://codesandbox.io/s/j2ywh?file=/index.ts</a></p>