gpt4 book ai didi

javascript - ESlint 错误,类型 '() => Promise' 缺少类型 'Promise' 中的以下属性 : then, 捕获,[Symbol.toStringTag],最后

转载 作者:行者123 更新时间:2023-12-04 13:12:01 29 4
gpt4 key购买 nike

我遇到了一个错误,我只能通过添加 any 来修复它作为返回值。

export const dbConnections: any = {};

export const connectDb: Promise<void> = async () => {
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);
}
};
这会引发错误,
export const connectDb: Promise<void> = async () => {
^^^^^^^^^^^^^
Type '() => Promise<void>' is missing the following properties
from type 'Promise<void>': then, catch, [Symbol.toStringTag], finally
如果我这样做 any而不是 Promise<void> ,然后错误消失,但这显然不是我试图解决这个问题的方式。如何解决此 lint 错误?

最佳答案

问题在于函数声明。您需要将返回类型指定为 Promise<void> .

export const connectDb = async (): Promise<void> => {
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);
}
};

关于javascript - ESlint 错误,类型 '() => Promise<void>' 缺少类型 'Promise<void>' 中的以下属性 : then, 捕获,[Symbol.toStringTag],最后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64114735/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com