• Colloidal@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    3 days ago

    The code is ultimately ran in a JS interpreter. AFAIK TS transpiles into JS, there’s no TS specific interpreter. But such a huge difference is unexpected to me.

    • TCB13@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      2
      ·
      3 days ago

      Its really not, have you noticed how an enum is transpiled? you end up with a function… a lot of other things follow the same pattern.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        2 days ago

        No they don’t. Enums are actually unique in being the only Typescript feature that requires code gen, and they consider that to have been a mistake.

        In any case that’s not the cause of the difference here.

        • TCB13@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          20 hours ago

          This isn’t true, there are other features that “emit code”, that includes: namespaces, decorators and some cases even async / await (when targeting ES5 or ES6).

          • FizzyOrange@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            14 hours ago

            Ah yeah I forgot about namespaces. I don’t think they’re a popular feature.

            The other two only generate code for backwards compatibility. When targeting the latest JavaScript versions they don’t generate anything.

            Ok decorators are technically still only a proposal so they’re slightly jumping the gun there, but the point remains.