@alanscodelog/utils
    Preparing search index...

    Type Alias ExpandClassRecord<TClass, TKey, TAdd, TValue>

    ExpandClassRecord: TClass & Record<
        TKey,
        ExpandRecord<TClass[TKey], TAdd, TValue>,
    >

    Does ExpandRecord on a property of a class. Useful for permanently casting a class's key (e.g. entries) with additional keys or more permissive entry keys.

    For example:

    const obj = new Entries([{key:"a"}])
    // obj.entries = {a: {key: "a"}}

    const expanded = obj as ExpandClassRecord<typeof obj, "entries", "b">
    expanded.b // no error

    const permissive = obj as ExpandClassRecord<typeof obj, "entries">

    permissive.entries. // a still gets suggested
    permissive.entries.anything // no error

    Type Parameters