title: Express - All declarations of 'user' must have identical modifiers
body: <p>I am making use of <code>express</code> and <code>passport</code> in my application, In both packages, there's a <code>user</code> attribute under the <code>Request</code> interface. Currently, <code>express</code> has a <code>user</code> attribute but no other properties attached to it in the request object, e.g <code>req.user</code>. I am trying to do a declaration merge (not really sure if this is the right term for it) for express in order to tell typescript that <code>Express.Request.user</code> has an <code>id</code> attribute attached to it like so:</p>
  <pre><code>declare namespace Express {
    export interface Request {
      user: {
        id: string
      }
    }
  }
  </code></pre>
  <p>At the same time also, <code>passport</code> has a <code>user</code> attribute but with the value of <code>Express.User</code>. When I do that declaration merge above, I get an error that says <code>All declarations of 'user' must have identical modifiers.</code> Here's the declaration file for <code>passport</code>.</p>
  <pre><code>interface User {}
  
          interface Request {
              authInfo?: AuthInfo;
              user?: User;
  
              // These declarations are merged into express's Request type
              login(user: User, done: (err: any) =&gt; void): void;
              login(user: User, options: any, done: (err: any) =&gt; void): void;
              logIn(user: User, done: (err: any) =&gt; void): void;
              logIn(user: User, options: any, done: (err: any) =&gt; void): void;
  
              logout(): void;
              logOut(): void;
  
              isAuthenticated(): this is AuthenticatedRequest;
              isUnauthenticated(): this is UnauthenticatedRequest;
          }
  </code></pre>
  <p>I understand it's because of a mismatch in the interfaces, but how do I overcome this? Any help is welcome. Thank you very much!</p>