Code correctness - setters don't return a value
Rycochet opened this issue · 2 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 ;-)