承诺:void 类型的参数不可分配给类型 T

Promise: Argument of type void is not assignable to type T

我遇到了上述错误,但我没有发现我的代码有任何问题。

write(data: T): Promise<T> {
    return new Promise((resolve, reject) => {
        this.open()
        .then((db) => {
            return db.collection(this.table);
        })
        .then((table) => {
            table.insertOne(data)
        })
        .then((result) => {
            console.log(result);
            resolve(result);
        })
        .catch((err) => {
            reject(err);
        })
    })
}

我试着把它写成

write(data: T): Promise<any>

它就像一个魅力。但是想知道,我做错了什么?有人可以告诉我正确的代码吗?

谢谢

看来您的承诺链可能会在此处中断:

.then((table) => {
    table.insertOne(data)
})

由于您不在此处返回值,因此 result 在下一个 then 中不会有值。我希望 TypeScript 只是警告你这个潜在的错误。