The variant object to validate
Type predicate indicating if the value is a valid partial Variant
// Valid variant with all properties
const completeVariant = {
title: "Sodium Chloride 500g",
price: 29.99,
quantity: 500
};
if (isValidVariant(completeVariant)) {
console.log('Valid complete variant:', completeVariant.title);
}
// Valid partial variant (inheriting some properties from parent)
const partialVariant = {
price: 39.99,
quantity: 1000
// title and other properties inherited from parent product
};
if (isValidVariant(partialVariant)) {
console.log('Valid partial variant');
}
// Invalid variant (wrong types)
const invalidVariant = {
title: "Sodium Chloride",
price: "29.99", // Should be number
quantity: "500" // Should be number
};
if (!isValidVariant(invalidVariant)) {
console.log('Invalid variant - wrong property types');
}
// Invalid variant (null/undefined)
if (!isValidVariant(null)) {
console.log('Invalid variant - null value');
}
Type guard to validate if a value is a valid product variant. Checks for the presence and correct types of variant properties. A variant can be partial as it may inherit some properties from the parent product (such as uom, currency, URL, etc.).