Thank you for your thorough reply. I was also a huge fan of Angular 1 (even if it couldn’t keep up with React’s render speeds), which is part of why the enormous breaking changes of Angular 2 left such a sour taste in my mouth.
I would say that, ugly is relative, and just because a thing is ugly, that doesn’t mean you automatically shouldn’t use it. I agree that using typings from TypeScript or Flow will add noise to code, but there are some excellent benefits to tooling and error reporting. Decorators may be unattractive to your eye, but they are powerful. I find the BEM (Block Element Modifier) CSS methodology extremely ugly. But it works. And because it works, it has become a leading CSS methodology used by many developers.