I had made a video where I go over one of the use cases for this in a game I am working on. https://www.youtube.com/watch?v=MEQtDCqeDu4&t=43s&ab_channel=Piranha305
the video is quite long but, in a nutshell, I had a color picker system that was used on multiple layouts and when a new color was selected, I would create and dispatch a color-changed event (I would attach the hex value to the event data)
I did run into a few issues removing events, and getting unintentional duplicate events, so I created a manager class to ensure events would not be duplicated and cause issues and also to keep a function reference used to remove events.
But to consume the events you just need to call addEventListener on the instance.