MST
星途 面试题库

面试题:TypeScript 泛型函数类型注解深度应用问题

实现一个 TypeScript 泛型函数 `sortBy`,它接收一个数组和一个用于提取排序依据值的函数作为参数。例如 `sortBy([{name: 'Alice', age: 25}, {name: 'Bob', age: 20}], person => person.age)` 应该根据年龄对对象数组进行排序。要求对泛型函数进行全面且准确的类型注解,包括参数和返回值,以确保类型安全和灵活性。
10.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function sortBy<T, K extends keyof T>(arr: T[], selector: (item: T) => T[K]): T[] {
    return arr.slice().sort((a, b) => {
        const valueA = selector(a);
        const valueB = selector(b);
        if (valueA < valueB) return -1;
        if (valueA > valueB) return 1;
        return 0;
    });
}