面试题答案
一键面试设计思路
- 使用泛型
T
来表示数组元素的类型。 - 通过条件类型
T extends number ? T : never
来约束数组元素必须是数字类型。 - 定义回调函数类型,该回调函数接收满足条件的数字类型元素。
- 遍历数组,调用回调函数处理满足条件的元素。
完整代码
function processArray<T extends number>(arr: T[], callback: (num: T extends number ? T : never) => void) {
for (let num of arr) {
if (typeof num === 'number' && num > 10) {
callback(num as T extends number ? T : never);
}
}
}
// 使用示例
const numbers = [15, 20, 5];
processArray(numbers, (num) => {
console.log(`处理数字: ${num}`);
});