Go compiles, it's not interpreted so you don't have that realtime result thing some people jones for. Go can't run client-side in a browser whilst typescript can once "compiled" to normal everyday JavaScript. I can to a varying degree see the appeal of using the same language server-side and client-side in a variety of projects.
Typescript is basically to JavaScript/ECMAScript as SCSS is to CSS.
That said, I too have problems with typescript. I SHOULD like it, as I'm a fan of languages that have strict typecasting... but it takes it to pedantic levels that become more annoyance than usefulness, and typically ends up making me write more code that I would without it, that the pre-processor then vomits up even more code for on deployment.
Add in that it is basically an unnecessary extra step, and I just don't get the appeal. Much like LESS/SASS/SCSS it strikes me as the type of thing that if you "need it" or even just find benefit from using it, there is something horrifyingly and dreadfully wrong with either how you're writing your code, or with what it is you're trying to do in the first place.
It has that same reek of trying to shoe-horn concepts from other languages into JavaScript without understanding the language in the first place. Much like some of the newer ECMAScript changes that take a mess and just make it messier.
Admittedly one of my complaints about Go, TypeScript, and much of the newest ECMAScript changes -- a lot of unnecessary changes that just feel like taking ideas from other languages and forcing them into it, with zero concern for code clarity or even the most basic understanding of the differences between compiled and interpreted languages... or in the case of TypeScript and the ECMAScript, a base understanding of how JS is supposed to be used.
That and how painfully cryptic many of these languages get due to "wah wah, eye dunz wunna types". It's one of the things that made me reject "Go" as I find the syntax, function library, and general code construction to be agonizingly obtuse, flipping the bird at code clarity and easily digested logic. Much like "rust" it feels like someone looked at C++ and went "oh this is way too simple to maintain the illusion of programming being difficult. What can we do to make this even harder to understand and work with?"
Just little stupid shit like case sensitivity determining export feels to me like it's DESIGNED to make developers make mistakes; how dare we expect anyone to use a word like "export", or to divide a file into "interface" and "implementation" using FULL WORDS for clarity. To be fair, even just having "func" instead of "function" makes it harder to read. I wanted that level of cryptic shortcuts I'd just use vanilla C.
Vanilla C? Sounds like a powdered drink mix... or a late '80's rapper.But what do I know? I consider Ada to be the pinnacle of programming language design, and would rather hand assemble 8k of Z80 machine language than try to debug 100 lines of C.
As I've said for two decades or so, I've never been convinced this was a joke:
https://www.gnu.org/fun/jokes/unix-hoax.html