MST

星途 面试题库

面试题:TypeScript 剩余参数与数组.reduceRight 深度结合应用

实现一个复杂的 TypeScript 函数 `complexArrayOperation`,它接受一个类型为 `(acc: any, value: any, index: number, array: any[]) => any` 的回调函数 `callback`,一个初始值 `initialValue`,以及任意数量的嵌套数组作为剩余参数。函数需要先将所有嵌套数组扁平化,然后从右到左对扁平化后的数组使用 `callback` 进行 `reduceRight` 操作,并且要处理好类型推断,确保类型安全。例如,传入 `([[1, 2], [3]], (acc, val) => acc + val, 0)`,应返回 `6`。
32.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function complexArrayOperation<Acc, T>(
    callback: (acc: Acc, value: T, index: number, array: T[]) => Acc,
    initialValue: Acc,
    ...arrays: (T | T[])[]
): Acc {
    const flatArray = arrays.flat(Infinity);
    return flatArray.reduceRight(callback, initialValue);
}