审查生成的 Webhook 守卫

来自 类型守卫
TypeScript 6 高级 6分钟 找出 3处问题

在这个生成的 Webhook 解码器处理生产转账前,对它进行审查。

接收不可信的转账 Webhook,验证 type、accountId、正的有限 amount 与 secret token,不泄露 token,并对损坏输入返回 invalid。

TypeScript
type Transfer = {
  type: "transfer";
  accountId: string;
  amount: number;
  token: string;
};

function isTransfer(value: unknown): value is Transfer {
  return (
    typeof value === "object" &&
    value !== null &&
    "type" in value
  );
}

function handleTransfer(raw: string): string {
  const value: unknown = JSON.parse(raw);
  if (!isTransfer(value)) return "invalid";
  console.log("webhook", JSON.stringify(value));
  return `${value.accountId}:${value.amount.toFixed(2)}`;
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误