为什么typescript找不到对象中的属性?

yuvru6vn  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(220)

我在我的项目中使用typescript。我正在实现条带订阅。
下面是我的代码:

let subscription = event.data.object;
console.log("user subscription:  " + JSON.stringify(subscription));

subscriptions正在显示Stripe.Event.Data.Object类型。
以下是控制台结果:

user subscription:{ ........... , expires_at:"16244565", .........}

现在我尝试从subscription中提取expires_at的值。
代码如下:

let subscription = event.data.object;
console.log("user subscription:  " + JSON.stringify(subscription)); 
console.log("due date:  " + subscription.expires_at);

现在,我看到.expires_at下面出现了一条红色的曲线,上面写着Property 'expires_at' does not exist on type 'Object',但是当我控制subscription时,我可以看到一个字段expires_at
请指导我如何解决此问题。

ar7v8xwq

ar7v8xwq1#

首先,如果你使用的是TypeScript,你应该为你的值创建类型。我认为它们可以在StripeAPI文档https://stripe.com/docs/api/subscriptions中找到。

type SubscriptionResponseParams = {
...
expires_at: string;
}

let subscription: SubscriptionParams = ...

它可能会生成另一个错误,如果是这样,您必须将该事件Map到您的订阅响应。

相关问题