I’m prefixing @Output events with the name of my components, which seems to work pretty well and to provide a consistent and clear convention which avoids the problems you describe. For example, suppose I have a component named, e.g. TurnEditorComponent — @Output events might be named turnEditorChange, turnEditorFocus, turnEditorBlur and so on.