I've been in the industry for a while now and have had the fortune to talk with many people at different companies, in different roles, different regions of the world, and to even have backroom conversations at conferences I've attended or spoken at. And of course I also spend a lot of time online hearing many opinions from people. One conversation topic that always yields interesting (and sometimes hot) takes, is TypeScript.
I've compiled a list here of some quotes about TypeScript, people's (mostly unfiltered) opinions and experiences with it. All of these are "true", but they come from different perspectives, which add up to TypeScript's interesting reputation.
"TS is a comfort blanket for backend developers." - Senior Frontend
I've heard this exact phrase repeated many times, typically from experienced frontend devs, sometimes jokingly, sometimes seriously.
"TypeScript is a miracle, I can finally touch the frontend without hating myself." - Backend Developer
"I will say this, TypeScript is training wheels for backend folks creeping their heads into frontend." - Software Engineer II
"TypeScript is a lot of extra work to solve problems I don't have, in ways I don't like." - author of the highly influential "You Don't Know JS" book series
This one quote very succinctly sums up the feelings of many of the others on this list.
"If you have a team of backend devs that need to do frontend occasionally, then TypeScript will likely be a very good fit for that team." - Conference talk on why to use TypeScript
"I've only looked at about 10 TypeScript codebases, but I've literally not been able to read the code in any of them. It's so ugly and badly designed. What monster came up with this?" - Frontend Engineer
"The architect at my last job kept trying to get everyone to adopt TypeScript, I was so happy to find out that our team didn't need to, it was a small internal project and TS would have been such a pain." - Backend Node.js Engineer
"I don't know if I dislike TypeScript, or just the way we use it at work. We had an existing codebase that was "converted" over to TS, but almost all the types were "any", and we had so much trouble getting 3rd party libraries to cooperate with it. Fighting with libraries slowed development way down. Not to mention, taking 20 seconds to compile after any save. From my understanding we basically got all the downsides with none of the upsides." - Junior dev
"I don't like TS at all, but my repo gets hundreds of contributors and I just use it as another form of automated enforcement so I can spend less time nitpicking in PR's." - Open source maintainer
"95% of what TypeScript gives you can be done with less effort and tooling by just using strict linting and JSDocs." - Senior Fullstack
As a fan of linting, I tend to agree with this. You can even have linting for your JSDoc comment block so the comments don't get out of sync with the code. And the TS engine in VSCode can infer types from these comment blocks, so she had a good point. It's a lot less tooling to get basically the same result.
"We re-wrote our codebase in TypeScript and caught 30% more bugs." - Company Case Study
"Given the opportunity to do any form of major refactoring or re-writing of a codebase, you are likely to find and fix many bugs. For what purpose you are re-writing or what you are re-writing it to, is not relevant. Simply the focused attention on the improvement of the code, rather than the building of a feature will always yield this result." - Highly upvoted hackernews response to the above case study
A study of 211 Apache foundation projects found that bugs occurred at the same rate in both strongly and loosely typed languages. The only thing that effects bug rates is good testing practices. - Academic White paper
"If you already have very strict linting in place and high test coverage the time spent trying to get TypeScript to play nice is nothing but diminishing returns. Only go this path if the style of coding is strongly preferred by the team." - Software Architect
Again, all of these quotes are true, they just represent different perspectives. What is right for you will depend on your background, your team, and your goals.
Hope these perspectives help.
Cover art: Battle of Grenada by Jean-François Hue (1779)
Linus van Pelt from "Peanuts" by Charles Schulz
Ship Schematic from The Model Shipwright