ESlint错误,类型'() => Promise<void>‘缺少来自类型’Promise<ESlint>‘的以下属性: then,catch,[Symbol.toStringTag],finally - 小众知识

ESlint错误,类型'() => Promise<void>‘缺少来自类型’Promise<ESlint>‘的以下属性: then,catch,[Symbol.toStringTag],finally

2022-07-12 07:53:53 苏内容
  标签: JS
阅读:3144

类型“WebItem”缺少类型“Promise<WebItem>”中的以下属性: then, catch, finally

ESlint错误,类型'() => Promise<void>‘缺少来自类型’Promise<ESlint>‘的以下属性: then,catch,[Symbol.toStringTag],finally

浏览 51关注 0回答 2得票数 3
原文

我得到了一个错误,我只能通过添加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);
    }};



typescript中的异步函数返回promise值。

如下所示:

export const dbConnections: any = {};export const connectDb: () => Promise<void> = async () => {
    ...};


扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1