The value to validate
Type predicate indicating if the value is a complete Product object
const completeProduct = {
title: "Sodium Chloride",
price: 29.99,
quantity: 500,
uom: "g",
supplier: "ChemSupplier",
url: "/products/nacl",
currencyCode: "USD",
currencySymbol: "$",
description: "High purity sodium chloride",
cas: "7647-14-5"
};
if (isProduct(completeProduct)) {
console.log('Valid complete product:', completeProduct.title);
} else {
console.log('Invalid product object');
}
// Example with missing required fields
const partialProduct = {
title: "Sodium Chloride",
price: 29.99
// Missing required fields
};
if (!isProduct(partialProduct)) {
console.log('Invalid product - missing required fields');
}
Type guard to validate if a value is a complete Product object. Checks for the presence and correct types of all required product fields. This is a stricter validation than isMinimalProduct as it ensures all required fields are present.