CHALLENGE 1: Type a Product Object =================================== SOLUTION: const product: { name: string; price: number; inStock: boolean; description?: string; } = { name: "Laptop", price: 999.99, inStock: true, description: "High-performance laptop for professionals" }; // Also valid without description: const anotherProduct: { name: string; price: number; inStock: boolean; description?: string; } = { name: "Mouse", price: 29.99, inStock: false }; EXPLANATION: - "name: string" — product name is required - "price: number" — price is required (decimals allowed) - "inStock: boolean" — stock status is required - "description?: string" — optional (the ? means it can be undefined) KEY POINTS: - Required properties MUST be present when creating the object - Optional properties can be omitted - If you include an optional property, it must match the type TESTING: ✅ Works: { name: "Phone", price: 499, inStock: true } ✅ Works: { name: "Phone", price: 499, inStock: true, description: "..." } ❌ Error: { name: "Phone", price: "499", inStock: true } (price should be number) ❌ Error: { name: "Phone", inStock: true } (price is required!)