Out of curiosity how long have you used angular for? I usually have similar thoughts when first picking up a new framework before working with it for a few months to figure out how it's "supposed" to be used.
(I have not used angular myself)
(I have not used angular myself)
Same about Reactive Forms.
Patching each @Output and @Input through a component by hand is also pretty annoying, especially if they change relatively often. A custom input field for a reactive form gets quite large due to all the in- and outputs.
Patching @Output and @Input is supremely painful - I really wish there was some sort of shorthand for that.
Inputs into makeObservable are the component class (this) and the requested property name (generics with keyof).