思路说明
- 首先定义
Product
接口,包含题目要求的属性。
- 使用函数重载来定义
searchProducts
函数,针对不同参数情况进行重载声明。
- 实际的函数实现部分,根据传入的参数类型判断执行不同的逻辑来返回相应的产品数据。这里假设产品数据存储在一个数组中,实际应用中可能从数据库等数据源获取。
TypeScript代码
interface Product {
productId: number;
productName: string;
price: number;
category: string;
}
// 函数重载声明
function searchProducts(category: string): Product[];
function searchProducts(category: string, price: number): Product[];
function searchProducts(productId: number): Product | undefined;
// 函数实现
function searchProducts(param1: string | number, param2?: number): Product[] | Product | undefined {
const products: Product[] = [
{ productId: 1, productName: 'Product1', price: 100, category: 'Category1' },
{ productId: 2, productName: 'Product2', price: 200, category: 'Category1' },
{ productId: 3, productName: 'Product3', price: 150, category: 'Category2' },
{ productId: 4, productName: 'Product4', price: 50, category: 'Category2' }
];
if (typeof param1 ==='string') {
if (param2!== undefined) {
return products.filter(product => product.category === param1 && product.price <= param2);
} else {
return products.filter(product => product.category === param1);
}
} else {
return products.find(product => product.productId === param1);
}
}