TypeScript can be great, but in practice I have seen teams lean on it as a way of taming data models that are overly complex and changing at rates that strain the ability of developers to keep up. Sometimes it might more sense to control complexity and extreme rates of change directly instead of moderating their impacts by using TypeScript like a blind person's cane.
If you write a web language as a primary part of your job, you might not be an engineer.
In all seriousness though, I hate having to add a bunch of tooling to my dev process so that I get to write extra syntax to avoid warnings about valid code in the language as it is actually interpreted by the VM. It’s bureaucratic bs, so yeah, I avoid roles heavy on TS.
JS has a type system already. Its rules are laid out in easy to read specs. Maybe ”engineers” should learn how JS works instead of placing “safety” features in the way of their half baked understanding of the code and how it interacts with external data from the DOM, http requests and so on.
If you write a systems language as a primary part of your job, you might not be an engineer.
In all seriousness though, I hate having to add a bunch of tooling to my dev process so that I get to write extra syntax to avoid warnings about valid code in the language as it is actually interpreted by the CPU. It’s bureaucratic bs, so yeah, I avoid roles heavy on C.
Assembly has a type system already. Its rules are laid out in easy to read specs. Maybe ”engineers” should learn how Assembly works instead of placing “safety” features in the way of their half baked understanding of the code and how it interacts with external data from the terminal, disks and so on.
Typescript is about reducing and almost eliminating runtime errors. We rarely have any errors show up on our error monitoring tools because of Typescript.
Type systems don't deal with variables. Type systems deal with interactions between values. Maybe those values are inline, maybe they are stored in variables.
You don't imply anything from an assignment other than the variable now has or is pointing to the new value. This is the same in every programming language. The only difference is that some programming languages gatekeep what you can assign to a variable based on types.
TS is fine. Some people overengineer it absurdly. But in decent quantities is fine.
I have recently used NextJS, after not using it for a few years. It feels like it has jumped the shark. Meh new features bur requires redoing many things.