exceljs / exceljs

Excel Workbook Manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Code correctness - setters don't return a value

Rycochet opened this issue · comments

I'm creating a TypeScript definition file (will push back into the project when done), and noticed that every setter is also returning the value set - this does nothing and is unused, so the return itself can be removed (it's just wasting space and potentially creating confusion):

IE. https://github.com/guyonroche/exceljs/blob/master/lib/doc/cell.js#L85

  get numFmt() {
    return this.style.numFmt;
  },
  set numFmt(value) {
    return this.style.numFmt = value;
  },

...should be...

  get numFmt() {
    return this.style.numFmt;
  },
  set numFmt(value) {
    this.style.numFmt = value;
  },

A cascading sum like a = b = c will call the getter on c, then the setter on b, then the getter on b, and finally the setter on a.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set

(Although it's not directly clear from the docs, there is an explicit return in the getter, and none in the setter, in addition to all the examples.)

@Rycochet thanks for the tip - returning values from setters is a habit from my C++ days, I hadn't realised they were being ignored.
I've removed returns from setters and pushed to the repo

@guyonroche I know the feeling, hence checking the references, several hundred bytes of savings are always good ;-)