TypeScript's number type is a lie

(bluepnume.medium.com)

4 points | by bluepnume 10 hours ago ago

5 comments

  • glkindlmann 8 hours ago ago

    Supporting operator overloading is part of the linked TS issue [1]. But I'm more curious: why did operator overloading in ES6 itself [2] die?

    [1] https://github.com/microsoft/TypeScript/issues/42218

    [2] https://github.com/tc39/proposal-operator-overloading

    • bluepnume 7 hours ago ago

      Probably if nothing else, impossible to have it perform well without static typing?

      • glkindlmann 30 minutes ago ago

        But traversing the prototype chain (to figure out method dispatch) is also potentially slow without static typing, and we're managing that ok, no?

  • newaccountman2 10 hours ago ago

    Am I incorrect in thinking this is not a TypeScript problem, but a problem most languages have, and that TypeScript is one of the few with a neat little solution?

    • bluepnume 9 hours ago ago

      In most languages you could probably solve this problem with a class. But wrapping all your numbers in a class with runtime consequences, just for a bit of extra type safety, feels quite extreme.