找出这个谓词为何会放行一个让 formatInvoice 崩溃的值。
TypeScript
type Invoice = { id: string; total: number };
function isInvoice(value: unknown): value is Invoice {
return (
typeof value === "object" &&
value !== null &&
"id" in value
);
}
function formatInvoice(value: unknown): string {
if (!isInvoice(value)) return "invalid";
return `${value.id}:${value.total.toFixed(2)}`;
}