You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Coinbase Webhook获取metadata遇TypeScript类型错误求助

解决Coinbase Webhook获取metadata的TypeScript类型错误

出现这个错误是因为Coinbase的类型定义中,event.data是ChargeResource | CheckoutResource的联合类型——虽然你已经通过event.type === "charge:confirmed"判断了事件类型,但TypeScript无法自动将event.data的类型窄化为ChargeResource(只有该类型包含metadata属性),需要手动处理类型窄化:

方法一:类型断言(快速直接)

直接将event.data断言为ChargeResource,因为当事件类型为charge:confirmed时,event.data必然是Charge类型:

if (event.type === "charge:confirmed") {
  const metadata = (event.data as ChargeResource).metadata;
  // 执行数据库写入、发送邮件等逻辑
}

方法二:自定义类型守卫(更严谨)

如果希望代码更健壮,可以写一个类型守卫函数,让TypeScript自动识别类型:

// 定义类型守卫函数
function isChargeResource(data: ChargeResource | CheckoutResource): data is ChargeResource {
  return 'metadata' in data;
}

// 在逻辑中使用
if (event.type === "charge:confirmed" && isChargeResource(event.data)) {
  const metadata = event.data.metadata;
  // 执行后续业务逻辑
}

这两种方法都能解决TypeScript的类型报错,同时保证你能正确获取创建charge时传入的metadata。

内容的提问来源于stack exchange,提问作者saolu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:07:09