function processData<T>(arr: string[]): string;
function processData<T>(arr: number[]): number;
function processData<T extends { name: string }>(arr: T[]): string;
function processData<T>(arr: any[]): any {
if (arr.length === 0) {
return null;
}
if (typeof arr[0] ==='string') {
return arr.join('');
} else if (typeof arr[0] === 'number') {
return arr.reduce((acc, val) => acc + val, 0) / arr.length;
} else if ('name' in arr[0]) {
return arr.map((obj) => obj.name).join('');
}
return null;
}
// 调用示例
const stringArr: string[] = ['a', 'b', 'c'];
const stringResult = processData(stringArr);
console.log(stringResult);
const numberArr: number[] = [1, 2, 3];
const numberResult = processData(numberArr);
console.log(numberResult);
const objectArr = [{ name: 'Alice' }, { name: 'Bob' }];
const objectResult = processData(objectArr);
console.log(objectResult);