I recently had to work with a JS codebase that looked like it was written by Java devs that were fooled by the surface similarities of TS and Java. Everything was a class, usually in a complex hierarchy with a lot of implementation inheritance. The code was deeply imperative and very hard to follow as well as being painfully verbose. It was the worst of both worlds.