MST

星途 面试题库

面试题:TypeScript泛型函数的复杂类型推断与重载

设计一个TypeScript泛型函数 `combine`,它可以接受多种类型的参数。如果传入两个字符串,函数返回这两个字符串拼接后的结果;如果传入两个数字,返回它们的和;如果传入一个数组和一个元素(元素类型与数组元素类型相同),则将元素添加到数组中并返回新数组。请通过类型重载和泛型来实现这个函数,确保类型安全和正确的类型推断。
24.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function combine(a: string, b: string): string;
function combine(a: number, b: number): number;
function combine<T>(arr: T[], item: T): T[];
function combine(a: any, b: any): any {
    if (typeof a ==='string' && typeof b ==='string') {
        return a + b;
    } else if (typeof a === 'number' && typeof b === 'number') {
        return a + b;
    } else if (Array.isArray(a) && a.length > 0 && a[0] === b) {
        return [...a, b];
    }
    return null;
}