interface User {
name: string;
age: number;
}
// 函数重载声明
function fetchUser(id: number): User | undefined;
function fetchUser(name: string): User[];
// 函数实现
function fetchUser(param: number | string): User | User[] | undefined {
// 模拟用户数据
const users: User[] = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
if (typeof param === 'number') {
// 根据id查找用户
return users.find(user => user.name.charCodeAt(0) - 65 === param);
} else {
// 根据名字查找用户
return users.filter(user => user.name === param);
}
}