The reason I wanted to switch to using typescript in my project was to add some typechecking and make my code more robust. I have 0 testing coverage and I already ran into dumb bugs that I think I should really be testing for but instead of adding tests, I figured typescript might be my out. Boy, was I wrong! This just made me dislike typescript more. (I still love typescript as a whole, just for this project it was a pain in the ass, I hope that I can read this post in the future and see all these things disappear.)
Transforming my web project to use typescript was what actually killed the momemntum for me. I took a month break after wiring it up to work with typescript because I screwed up by not backing up before doing the roll out. The migration to typescript was pretty straightforward but the building and waiting killed my motivation.
The next thing that took me out of using typescript was the finnickiness of the build system. I had to set up my express project under a src directory and then build into dist directory. Which, conceptually makes sense but was pain in the ass to get going. There was also weirdness in how files were watched and how es-lint was running. Lots of little things made the tooling around typescript such a kill joy that I never want to do it again. I think this is very much because I was trying to convert an existing project to typescript and I probably would have a much better time if I wrote typescript from the beginning like I have with other projects.
The last thing that bothered me with typescript was the magical class stuff I had to do do to get sessions and the like to work. I understood none of the changes I was making but got it to work but I didn’t like that there was parts of the code that I basically was copy and pasting and modifying into working. Obviously I understood part of it because I had to make changes but it was like I knew the rules of how it worked so I could force my code to fit into it but I didn’t understand the rules themselves.