typescript 泛型的一个问题?

image.png

下面ts定义报错了,要如何修改?

key, text 两个变量都属于 list数组里面对象的key; 比如

export interface TableProOptions {
    [key: string]: {
        text:string
    },
}


export function transformToSelectObj<T extends U,K extends U, U extends string>(list: { [key: U]: any}[], obj: {
    key: T,
    text: K
}): TableProOptions;

export function transformToSelectObj(
    list,
    {
        key,
        text,
    }
) {
    const listProObj: TableProOptions = {};
    if (list instanceof Array && list.length > 0) {
        list.forEach((item) => {
            listProObj[item[key]] = {
                text: item[text],
            };
        });
    }

    return listProObj;
}

transformToSelectObj([{
    id:'id1',
    label: "label1",
}],{
    key: 'id',
    text:'label2'  // label2 不等于 label 这里应该报错
})
阅读 1.6k
1 个回答
list: { [key in U]: any}[]

or

list: Record<U, any>[]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进