MST
星途 面试题库

面试题:TypeScript类型推断中的泛型与条件类型结合问题

定义一个泛型函数,该函数接受一个数组,返回一个新数组,新数组的元素类型取决于原数组元素类型。如果原数组元素是字符串,则新数组元素类型为字符串长度;如果原数组元素是数字,则新数组元素类型为该数字的立方。请使用泛型和条件类型来实现并解决类型推断问题。
11.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function transformArray<T extends string | number>(arr: T[]): (T extends string ? number : T extends number ? number : never)[] {
    return arr.map((item) => {
        if (typeof item === 'string') {
            return item.length as (T extends string ? number : never);
        } else if (typeof item === 'number') {
            return item * item * item as (T extends number ? number : never);
        }
        throw new Error('Unsupported type');
    }) as (T extends string ? number : T extends number ? number : never)[];
}