MST
星途 面试题库

面试题:TypeScript 泛型约束在接口中的复杂应用

假设有一个接口 `DataProcessor`,它有一个泛型类型参数 `T`。要求实现一个函数 `processData`,该函数接受一个符合 `DataProcessor` 接口的对象和一个数据数组。在函数内部,根据 `DataProcessor` 接口中定义的处理逻辑(假设接口中有一个 `process` 方法用于处理单个数据)对数组中的每个数据进行处理,并返回处理后的结果数组。同时,对泛型 `T` 进行约束,使其必须具有 `id` 属性且类型为 `number`。请编写完整的 TypeScript 代码实现上述功能。
31.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface DataProcessor<T extends { id: number }> {
    process(data: T): T;
}

function processData<T extends { id: number }>(processor: DataProcessor<T>, dataArray: T[]): T[] {
    return dataArray.map(data => processor.process(data));
}