This is not even pedantic, it's wrong. You have JS/TS in both dev and prod, with javascript being the actual runtime code in both, and typescript checking your code at build time in both. If you're running javascript compiled/checked by , and written in, typescript, it's not uncommon or unreasonable to call it typescript.
As my sibling says, this is wrong. We indeed have TS in production.
Even for the parts that are being compiled to JS: You wouldn't say: You can not have C++ in production, only binaries.
The fact is that we don't write any JS as a part of our platform.
> It's not that you can't; it's that you choose not to
I think I made that quite clear in my comment.
> a language across the entire stack with mature wide adopted frameworks and libraries
> Even for the parts that are being compiled to JS: You wouldn't say: You can not have C++ in production, only binaries.
I would say that because it can be decompiled; the type information is still present. Same with C#. I can decompile the binary and still see the type information.The process of going from TS to JS is lossy; you cannot get back the type information.
I would absolutely say "I have C++ in production" or "I have C# in production" but not say "I have TypeScript in production". "We build our app with TypeScript" is accurate, but it is transpiled -- not compiled -- into JavaScript. Your Node.js server then interprets that JavaScript and executes C++.
JS -> TS is easy, you just re-anotate with `: any` everywhere.
Anyways, you are word juggling now.
Umm...no? V8 specifically compiles it into machine code directly.
There used to be a pseudo-translation layer in the CrankShaftScript days, but that hasn't been true in almost a decade.
> I can decompile the binary and still see the type information.
Also no. The de-compiler can _infer_ the types, much like how V8 tries to infer the type. But the actual type information is gone.
Even in languages like Java where most of the type information is preserved, some things are still lost (e.g. generic methods with dynamicinvoke)
Google uses TS internally. Any JS is strictly legacy code at this point. The link you posted even says this at the top:
> Please note: This guide is no longer being updated. Google recommends migrating to TypeScript, and following the TypeScript guide.
Also, Google's style guides are not really authoritative outside of Google. They are for some people, who choose to adopt them as their own, but you really shouldn't point to them as the end-all-be-all argument-stopper. Google has a lot of its own idiosyncrasies. Their C# style guide puts braces on the same line, for example, because Google primarily uses Java internally.
There are also libraries like Bootsharp[2] that are doing interesting things, IMO.
[0] https://google.github.io/styleguide/jsguide.html#jsdoc
[1] https://fable.io/docs/
[2] https://sharp.elringus.com/