• Creates a "merged" enum which can be used in Enums.keys, values, entries, etc with the same performance.

    Note that basic lookup will not be aware of new/deleted values until an Enums operation is called.

    Type Parameters

    • ENUM_OBJECTS extends any[]

    Parameters

    • Rest ...enumObjects: ENUM_OBJECTS

    Returns ENUM_OBJECTS["length"] extends 0 ? {} : ENUM_OBJECTS["length"] extends 1 ? ENUM_OBJECTS[0] : ENUM_OBJECTS["length"] extends 2 ? { [ KEY in keyof (ENUM_OBJECTS[0] & ENUM_OBJECTS[1])]: (ENUM_OBJECTS[0] & ENUM_OBJECTS[1])[KEY] } : ENUM_OBJECTS["length"] extends 3 ? { [ KEY in keyof (ENUM_OBJECTS[0] & ENUM_OBJECTS[1] & ENUM_OBJECTS[2])]: (ENUM_OBJECTS[0] & ENUM_OBJECTS[1] & ENUM_OBJECTS[2])[KEY] } : ENUM_OBJECTS["length"] extends 4 ? { [ KEY in keyof (ENUM_OBJECTS[0] & ENUM_OBJECTS[1] & ENUM_OBJECTS[2] & ENUM_OBJECTS[3])]: (ENUM_OBJECTS[0] & ENUM_OBJECTS[1] & ENUM_OBJECTS[2] & ENUM_OBJECTS[3])[KEY] } : ENUM_OBJECTS["length"] extends 5 ? { [ KEY in keyof (ENUM_OBJECTS[0] & ENUM_OBJECTS[1] & ENUM_OBJECTS[2] & ENUM_OBJECTS[3] & ENUM_OBJECTS[4])]: (ENUM_OBJECTS[0] & ENUM_OBJECTS[1] & ENUM_OBJECTS[2] & ENUM_OBJECTS[3] & ENUM_OBJECTS[4])[KEY] } : "too many enum objects, expand type"

Generated using TypeDoc