Typescript:返回时在泛型对象中强制执行泛型类型的函数?

时间:2018-05-12 04:22:45

标签: typescript

我基本上试图创建一个简单的" GROUP BY"将获取特定类型的数组的函数,并返回一个通用对象,该数组被分割并键入我指定的任何参数。换句话说,如果我有一个数组,其中每个元素都是#34; Customer",并且我想使用此函数按" Customer.firstName"分组,我想传递它数组Customer []并接收一个对象{string:Customer []}作为回报,其中字符串是第一个名称,并且解析器理解对象的值仍然需要是Customers数组。这就是我所拥有的:

export class GroupUtil {
/* Take a typed array and returns an object of similarly typed arrays for which the key is the specified parameter. */
public static KeyArrayOn<T>(arr:T[], key:string):{} {
    let res:{} = {};
    for (let i of arr) {
        let k:any = i[key];
        if (res[k]) res[k].push(i); else res[k] = [i];
    }
    return (res);
}

我想要做的是输入一个常规对象,其中每个成员必须是一个仅由传入的通用数组类型组成的数组。这可能在TS中吗?

1 个答案:

答案 0 :(得分:1)

您可以将返回类型设置为{[key: string]: T[]}

public static KeyArrayOn<T>(arr: T[], key: string): {[key: string]: T[]} {
   ...
}

demo

相关问题