如何使用TypeScrip将固定承诺数组中的项设置为可选

我有这样的东西:

const promises:
            | [Promise<boolean>, Promise<boolean>]
            | [Promise<boolean>, Promise<boolean>, Promise<{ currency: string; price: number }>] = [
            User.is1337(user._id),
            PurchasedItemsModel.exists({
                type: 'course',
                userid: user._id,
                slug: courseSlug
            })
        ]

我希望正确键入promises变量。

稍后在代码中,我推送到Promises数组,如下所示:

promises.push(
                getSingleCoursePrice({
                    slug: courseSlug,
                    country,
                    percentOff: couponData?.percentOff || 0
                })
            )

当我这样按下时,TypeScrip给我一个错误:


解决方案

我想您可以使用以下解决办法:

    promises = [
        ...promises,
        getSingleCoursePrice({
            slug: courseSlug,
            country,
            percentOff: couponData?.percentOff || 0
        })
    ];

更新:

TS Playground。

相关文章