类型{}不可分配给类型“pool”类型{}中缺少属性“config”

kyks70gy  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(419)

我一直收到一个智能感知错误:

Type '{}' is not assignable to type 'Pool'. Property 'config' is missing in type '{}'.

下面是一些图片,以便更好地概述正在发生的事情。我已经试了大约2个小时来理解为什么vs-code-intellisense在这里抱怨。也许另一种见解能帮我解决这个问题。
当然,如果我将返回类型更改为any,错误就会消失,但这不是我想要的。函数声明说返回类型应该是pool,这就是pool object的承诺。
我想这是我不知道的很愚蠢的事情。因此,我愿意接受任何解释,甚至指示。
谢谢大家,祝你们今天愉快,
不出错的部分类

类的部分错误

mysql节点库

tsconfig.json文件

createpool mysql节点库声明文件

源代码,稍加修改:

export class Database
{
...

    private static pool: Pool;

    public static async connect(): Promise<Pool>
    {
        return new Promise((resolve, reject) => {
            if (Database.pool) {
                return resolve(Database.pool);
            }

            let config: PoolConfig = {
                connectTimeout: 15,
                connectionLimit: 10,
                host: process.env.TEST_DB_HOST || 'localhost',
                user: process.env.TEST_DB_USER || 'root',
                password: process.env.TEST_DB_PASSWORD || '',
                database: process.env.TEST_DB_DATABASE || 'test'
            };

            const pool: Pool = createPool(config);

            pool.getConnection((err, connection) => {
                if (err) {
                    return reject(err);
                }

                connection.release();

                return resolve(pool);
            });
        });
    }
...
}
ohtdti5x

ohtdti5x1#

您还没有告诉typescript Promise 是的,显然它无法推断。更改:

return new Promise((resolve, reject) =>

return new Promise<Pool>((resolve, reject) => 
// ---------------^^^^^^

相关问题