MST

星途 面试题库

面试题:TypeScript函数类型在复杂场景中的应用

假设有一个场景,需要实现一个高阶函数,它接受一个函数类型参数 `transform` 和一个数组 `data`。`transform` 函数类型要求能接受数组中的单个元素并返回转换后的结果。高阶函数要对 `data` 数组的每个元素应用 `transform` 函数,并返回转换后的新数组。请用TypeScript准确地定义相关的类型和实现该高阶函数,且要考虑到 `transform` 函数可能存在的异步操作情况。
26.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义 transform 函数类型,考虑异步操作,返回 Promise
type TransformFunction<T, U> = (element: T) => Promise<U> | U;

// 定义高阶函数,接受 transform 函数和 data 数组
async function transformArray<T, U>(transform: TransformFunction<T, U>, data: T[]): Promise<U[]> {
    const results: U[] = [];
    for (const element of data) {
        const transformed = await Promise.resolve(transform(element));
        results.push(transformed);
    }
    return results;
}