第四章练习答案
ts
function decodeProducts(value: unknown): Product[] {
if (!Array.isArray(value)) throw new Error('products must be an array');
return value.map((item, index) => {
if (!isProduct(item)) throw new Error(`invalid product at index ${index}`);
return item;
});
}答案保留了错误位置,调用者可以把协议错误和网络错误分开记录;不要用 as Product[] 跳过校验。