title: ESlint error, Type '() => Promise<void>' is missing the following properties from type 'Promise<void>': then, catch, [Symbol.toStringTag], finally
body: <p>I'm getting an error that I can only fix with adding <code>any</code> as the return value.</p>
  <pre><code>export const dbConnections: any = {};
  
  export const connectDb: Promise&lt;void&gt; = async () =&gt; {
      if (dbConnections.isConnected) {
          return;
      }
  
      try {
          const db = await mongoose.connect(config.get('mongoURI'), {
              useNewUrlParser: true,
              useUnifiedTopology: true,
              useFindAndModify: false,
              useCreateIndex: true,
          });
  
          dbConnections.isConnected = db.connections[0].readyState;
      } catch (err) {
          createError('Error caught connecting to db!', err);
      }
  };
  </code></pre>
  <p>This throws an error,</p>
  <pre><code>export const connectDb: Promise&lt;void&gt; = async () =&gt; {
                                          ^^^^^^^^^^^^^
  Type '() =&gt; Promise&lt;void&gt;' is missing the following properties
    from type 'Promise&lt;void&gt;': then, catch, [Symbol.toStringTag], finally
  </code></pre>
  <p>If I do <code>any</code> instead of <code>Promise&lt;void&gt;</code>, then the error disappears, but that's obviously not how I'm trying to go about this. How can I fix this lint error?</p>