MST

星途 面试题库

面试题:TypeScript泛型在复杂映射数据结构与类型约束的实践

有一个复杂的映射数据结构,它是一个对象,对象的键是字符串,值是不同类型的数组,这些类型可能是基本类型或者自定义类型。要求使用TypeScript泛型来定义一个类型,约束这个映射结构,并且编写一个泛型函数,能够根据键获取对应数组中的特定索引位置的值。同时,在类型层面确保传入的键和索引都是有效的。
48.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义映射结构的类型
type ComplexMap<T> = {
    [key: string]: T[];
};

// 泛型函数,根据键获取对应数组中的特定索引位置的值
function getValueByIndex<K extends string, T>(map: ComplexMap<T>, key: K, index: number): T | undefined {
    if (map.hasOwnProperty(key)) {
        const array = map[key];
        if (index >= 0 && index < array.length) {
            return array[index];
        }
    }
    return undefined;
}