Yeah the way you need to maintain two codebases: one for types and one for actual logic is annoying.
Also nix is purely functional (which is necessary, for more information read the Nix Pills), Typescript is not, so unless it’s only a purely functional subset or severely limits Nix (in the form of abstractions, after skimming over it, I think this is the case), it will run into issues…
Yeah, but unironic…
If your code needs comments, it’s either because it’s unnecessarily complex/convoluted, or because there’s more thought in it (e.g. complex mathematic operations, or edge-cases etc.). Comments just often don’t age well IME, and when people are “forced” to read the (hopefully readable) code, they will more likely understand what is really happening, and the relevant design decisions.
Good video I really recommend: https://www.youtube.com/watch?v=Bf7vDBBOBUA