Hello, everyone 👋. I am a newcomer when it comes to JavaScript. I come from an OOP background (C# and Java). I’ve recently learned that ES6 has a class keyword that preforms similarly (but not exactly) to common OOP languages. Normally I would be inclined to use this feature in my projects; however, it came to my attention that the usage of class in JavaScript seems to be heavily discussed (mostly in a negative light). My questions to this community are:

  • Should it be used often, sparingly, or be outright avoided?
  • What are its advantages and disadvantages?
  • Are there specific cases where the usage of class excels?

Please share your thoughts.

  • nickA
    link
    fedilink
    English
    arrow-up
    25
    arrow-down
    1
    ·
    1 year ago

    Whatever you do, I’d recommend using Typescript to give you some type safety with your JS.

      • fidodo@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        In that case you will love typescript. I’m not sure what other imperative languages have both type inference and structural typing.

    • Kissaki@feddit.de
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      I hate the heavy JS env it requires.

      Adding jsdoc to standard JS makes the ide provide some type help without TS. I find that to be a good, light alternative.

      • nickA
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        The IDE support based on JSDoc is typescript (at least it is in all the ones I know about). They’re just using TypeScript’s JSDoc annotation support under the hood.

        I’m not sure what you mean about the “heavy JS env” though, it’s just calling tsc in your package.json or whatever build script you’re using (or even if none, it’s one command).

        • Kissaki@feddit.de
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          I don’t have nodejs installed. That’s the heavy environment it depends on.

          • nickA
            link
            fedilink
            English
            arrow-up
            3
            ·
            1 year ago

            I think you do if your IDE is doing JSDoc-based autocompletion 😉

            It’s just likely built into your IDE.