javascript - 类型 '{}' 不可分配给类型 'Pool' 。类型 'config' 中缺少属性 '{}'

标签 javascript mysql typescript visual-studio-code

我不断收到此智能感知错误:

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

下面的图片可以更好地概述正在发生的事情。 我已经尝试了大约 2 个小时来理解为什么 vs code intellisense 在这里提示。 也许另一种见解可以帮助我解决这个问题。

当然,如果我将返回类型更改为 any,错误就会消失,但这不是我想要的。函数声明说返回类型应该是 Pool,这就是我所期望的 Pool 对象的 Promise。

我想这是我不知道的非常愚蠢的事情。 因此,我会提出任何解释甚至指示。

谢谢大家,祝你有愉快的一天,

部分类无错误

enter image description here

部分类有错误

enter image description here

Mysql节点库

enter image description here

tsconfig.json

enter image description here

createPool mysql节点lib声明文件

enter image description here

源代码,稍作修改:

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);
            });
        });
    }
...
}

最佳答案

您还没有告诉 TypeScript Promise 的解析类型是什么,显然它无法推断出来。变化:

return new Promise((resolve, reject) => 

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

关于javascript - 类型 '{}' 不可分配给类型 'Pool' 。类型 'config' 中缺少属性 '{}',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52569820/

相关文章:

php - 通过PHP删除未在mysql数据库中列出的文件夹中的图像

typescript - 无法从 Firestore 获取文档

几次 jQuery 调用后的 javascript 回调函数

mysql - SQL查询添加与子查询相关的where

javascript - 什么时候应该在 Angular 中使用隔离作用域?

mysql - 按年循环多个数组

angular - 如何在 Angular 2 typescript 项目中更改 body 类别

Angular2 扩展服务

javascript - 需要设置1个span的style才能显示:block on page load for an image gallery made up of span's set to display:none

javascript - 更改路径时 react 路由器不工作