MST

星途 面试题库

面试题:TypeScript可变元组类型在复杂类型推导中的实践

编写一个TypeScript类型工具函数,接受一个可变元组类型,元组中的每个元素是一个函数类型(函数参数和返回值类型自定)。要求通过类型推导,生成一个新的可变元组类型,新元组的每个元素是对应原元组中函数类型的返回值类型。同时,编写一个函数来验证这个类型推导的正确性,即传入原元组类型的函数数组,返回新元组类型的结果数组。
12.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 类型工具函数
type GetReturnTypeTuple<T extends readonly ((...args: any) => any)[]> = {
    [K in keyof T]: T[K] extends (...args: any) => infer R ? R : never;
};

// 验证函数
function verifyType<T extends readonly ((...args: any) => any)[]>(funcs: T): GetReturnTypeTuple<T> {
    return funcs.map(func => func()) as GetReturnTypeTuple<T>;
}

// 示例使用
const funcs = [
    () => 'hello',
    () => 42,
    () => true
] as const;

const results = verifyType(funcs);
// results类型为: ['hello', 42, true]