Type Alias Empty

Empty:
    | ""
    | EmptyObject
    | []
    | Map<any, any>
    | Set<any>

Empty versions of CanBeEmpty. Note that there is no way to distinguish an empty Set or Map from their non-empty counterparts in TypeScript (so you will get no emptiness type safety for them.)