It's very common to have a set of entities with different types under one "collection".
Specifically, you can have a look at typescript's discriminated unions 🙏