在泛型中正确使用Array.prototype.reduce,可以通过以下步骤实现:
const numbers: number[] = [1, 2, 3, 4, 5];
const sum: number = numbers.reduce((accumulator: number, currentValue: number) => accumulator + currentValue, 0);
console.log(sum); // 输出:15
在上面的例子中,我们使用了泛型类型number
来指定回调函数的参数类型和返回值类型。
function reduceArray<T, R>(array: T[], callback: (accumulator: R, currentValue: T) => R, initialValue: R): R {
let accumulator = initialValue;
for (let i = 0; i < array.length; i++) {
accumulator = callback(accumulator, array[i]);
}
return accumulator;
}
在上面的例子中,我们使用了两个泛型类型T
和R
,分别表示数组元素的类型和回调函数的返回值类型。
const numbers: number[] = [1, 2, 3, 4, 5];
const sum: number = reduceArray(numbers, (accumulator: number, currentValue: number) => accumulator + currentValue, 0);
console.log(sum); // 输出:15
在上面的例子中,我们使用了reduceArray函数来替代Array.prototype.reduce方法,并且通过泛型来指定参数类型和返回值类型。
总结: 在泛型中正确使用Array.prototype.reduce,需要定义一个泛型函数,并使用泛型来指定参数类型和返回值类型。通过这种方式,我们可以在泛型中灵活地使用Array.prototype.reduce方法,实现各种不同类型的操作。
领取专属 10元无门槛券
手把手带您无忧上云