TypeScript is unnecessarily complex.
Or is there critical typing functionality that Typescript accommodates only perversely?
I'm not sure if such perversions exist, it's been a while already since I touched TypeScript. To me the whole system seems perverted in the sense that an inexperienced developer can easily make things unnecessarily complex.