10 lines
248 B
TypeScript
10 lines
248 B
TypeScript
export function indexBy<T extends object, K extends keyof T>(
|
|
items: T[],
|
|
key: T[K] extends string | number ? K : never,
|
|
) {
|
|
return items.reduce((obj, item) => {
|
|
obj[String(item[key])] = item
|
|
return obj
|
|
}, {} as {[k: string]: T})
|
|
}
|