utilium
    Preparing search index...

    Type Alias FromKeyed<A, KeyName>

    FromKeyed: A extends (infer Element)[]
        ? {
            [K in Element[KeyName] & PropertyKey]: Expand<
                Element & { [_ in KeyName & PropertyKey]: K },
            >
        }
        : never

    Converts an array of objects with a common key into a keyed object

    Type Parameters

    • A extends any[]
    • KeyName extends A extends (infer E)[] ? keyof E : never
    type ducksArray = [
    { name: 'Gerald', quacks: 6 },
    { name: 'Dorthy', quacks: 7 },
    ];

    type ducks = FromKeyedArray<ducksArray, 'name'>; // { Gerald: { name: 'Gerald', quacks: 6 }, Dorthy: { name: 'Dorthy', quacks: 7 } }